家庭作业解析字符串:从字符串中删除逗号(java zybooks)
我想让字符串分开,而不是逗号。 我们还没有学过类似数组的东西,这是一个介绍类。 我在这里找到的所有东西只是不断给我错误或对zybooks中的代码无所作为。家庭作业解析字符串:从字符串中删除逗号(java zybooks)
import java.util.Scanner; public class ParseStrings {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in); // Input stream for standard input
Scanner inSS = null; // Input string stream
String lineString = ""; // Holds line of text
String firstWord = ""; // First name
String secondWord = ""; // Last name
boolean inputDone = false; // Flag to indicate next iteration
// Prompt user for input
System.out.println("Enter input string: ");
// Grab data as long as "Exit" is not entered
while (!inputDone) {
// Entire line into lineString
lineString = scnr.nextLine();
inSS = new Scanner(lineString);
firstWord = inSS.next();
lineString.split(",");
// Output parsed values
if (firstWord.equals("q")) {
System.out.println("Enter input string: ");
inputDone = true;
}
//This may be where I am messing up??
else if (lineString.contains(",")) {
secondWord = inSS.next();
System.out.println("First word: " + firstWord);
System.out.println("Second word: " + secondWord);
System.out.println();
} else {
System.out.println("Error: No comma in string");
System.out.println("Enter input string: ");
}
}
return;
}
}
我的地方搞乱了,并不断收到不同的错误代码,因为我跟上它搞乱......
“输入输入字符串:
第一个字:小杰,
第二个字:艾伦”
当它应该是
“输入输入字符串:
第一个字:吉尔
第二个字:艾伦”
然后还作为计算机进入更多的数据,我开始收到此消息:
“线程中的异常”main java.util.NoSuchElementException“
at java.util.Scanner.throwFor(Scanner.java:862)
at java.util.Sca nner.next(Scanner.java:1371)
在ParseStrings.main(ParseStrings.java:44)”
回答:
可能性之一(如果你没有了解阵列)是使用StringBuilder和删除逗号或简单地循环输入字符串,如果字符在我们说的索引8是逗号,你做yourString.substring(0,8);,然后打印第二个字作为yourString.substring(10,yourstring.length);我在第二个子字符串中放置了起始索引10,因为您想跳过逗号和分隔名和姓的空格。下面是代码示例使用无非是String类,它的方法和循环:
package com.company; import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter first name and last name: ");
String str = in.nextLine();
int indexOfComma = 0;
for (int i = 0; i < str.length(); i++) {
if (str.charAt(i) == ',')
indexOfComma = i;
}
System.out.println("First name is: " + (str.substring(0, indexOfComma)));
System.out.println("Last name is: " + (str.substring(indexOfComma + 2, str.length())));
}
}
或者像我看你尝试使用分裂()(但既然你说你没有学到阵列但我张贴上述方案),你可以用.split()这样做:
package com.company; import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter first name and last name: ");
String[] name = in.nextLine().split(", ");
System.out.println("First name is: " + name[0]);
System.out.println("Last name is: " + name[1]);
}
}
而且,这里是StringBuilder类的例子:
package com.company; import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
System.out.print("Enter first name and last name: ");
StringBuilder name = new StringBuilder(in.nextLine());
name.deleteCharAt(name.indexOf(","));
System.out.println("Full name is: " + name);
}
}
回答:
所以,让我们采取最低限度的措施。 我们需要为此使用一些Java额外的库(如扫描仪):
我们需要一个arrayList,因为我们不知道我们要将字符串拆分成多少个元素。
我们需要一个数组从String
接口到ArrayList<String>
import java.util.ArrayList; import java.util.Arrays;
import java.util.Scanner;
public class Main
{
public static void main(String[] args)
{
Scanner scan = new Scanner(System.in);
//Get the inputs:
System.out.println("Enter a String: ");
String one = scan.nextLine();
System.out.println("Enter a second String: ");
String two = scan.nextLine();
//Concatenate (join up) the two inputs with a `,` delimeter
String three = one + "," + two;
// Now we split up the entire thing based on a separator of `,`:
ArrayList<String> parts = new ArrayList<>(Arrays.asList(three.split(",")));
//Print every word we separated:
for(String s: parts) {
System.out.println(s);
}
//System.out.println(parts.get(0));
}
}
你用,
分离这将打印出每个单词,并会删除逗号表示(,
)。
希望这有助于。
回答:
当扫描器读取所有的数据,如调用nextLine方法,而且也没有行...或下一个方法时,你没有把空格,逗号
后,默认情况下你的错误发生时,扫描仪使用空格作为分隔符。如果你想要的任何空格前加一个逗号分隔符,你可以试试这个
Scanner sc=new Scanner(System.in); sc.useDelimiter(",?\\s+");
现在,sc.next()
将宣读Hello, World
只Hello
,并给它的第二个电话应该返回World
或者你可以使用数组所做
String[] words = lineString.split(","); String first = words[0]:
String second = words[1];
以上是 家庭作业解析字符串:从字符串中删除逗号(java zybooks) 的全部内容, 来源链接: utcz.com/qa/259121.html