这是我的代码和抛出的错误:
import java.util.Scanner;
public class ParseStrings {
public static void main(String[] args) {
Scanner scnr = new Scanner(System.in);
Scanner inSS = null;
String inputString = "";
String firstWord = "";
String secondWord = "";
inSS = new Scanner(inputString);
boolean flag = false;
while (!flag){
System.out.print("Enter input string: \n");
inputString = scnr.nextLine();
if (inputString.equals("q")){
flag = true;
break;
}
// comma = inputString.indexOf(",");
if (!inputString.contains(",")){
System.out.println("Error: No comma in string");
}
// if (comma <= 0)
// {
// System.out.println("Error: No commas in string.");
// flag = true;
// }
// else
// {
else
{
for (int i = 0; i < inputString.length(); i++){
firstWord = inSS.next();
// comma = inSS.next();
secondWord = inSS.next();
System.out.println("First word: " + firstWord);
System.out.println("Second word: " + secondWord);
// flag = false;
}
return;
}
}
}
}
输入 吉尔,艾伦 q
您的输出以Enter输入字符串开头:
线程“main”java.util.NoSuchElementException中的异常
在
预期输出以
开始
输入输入字符串:
第一个字:吉尔
第二个词:艾伦
答案 0 :(得分:0)
有几种方法可以完成这项任务,但我想指出一些来自Java String Class的常用方法。
在 String.substring() 与...结合 String.indexOf() 方法可以快速拆分字符串以获取所需的数据 它会像这样工作:
String inputString = "Hello, World";
String firstWord = inputString.substring(0, inputString.indexOf(","));
String secondWord = inputString.substring(inputString.indexOf(",") + 2);
// Why use the number 2 above? Read the supplied links. Try it with 1
// to see what happens.
System.out.println(firstWord + "-" + secondWord);
另一种值得研究的方法是 String.split() 方法。使用此方法可以快速处理您正在尝试的内容 通过获取输入字符串并放置字符串组件来完成 用逗号(或其他)分隔成一维的 字符串数组:
String inputString = "Hello, World";
String[] words = inputString.split(", ");
System.out.println(words[0] + "-" + words[1]);
了解这些方法。