我有这个代码,让用户输入一个字符串,其中2个部分由字符( - )分隔,输入的字符串将被分成两个不同的部分,然后在屏幕上输出这两个部分,由逗号。
public class Test
{
public static void main(String[] args)
{
java.util.Scanner scanner = new java.util.Scanner(System.in);
String part = "";
System.out.println("Please enter the 2-part string to be split: ");
part = scanner.next();
String[] parts = part.split("-");
String part1 = parts[0];
String part2 = parts[1];
System.out.print("," + part1 + "," + part2);
scanner.close();
}
}
现在让我们说用户输入
AAA-222
结果将是
AAA,222
如果我想输入一个包含空格的字符串,例如
,该怎么办?我爱你 - 我讨厌你
我如何分裂(我爱你)和(我讨厌你)? 我用上面的代码得到了这个错误。
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 1
at tutorial.Test.main(test.java:17)
PS。拆分部分应包含空格。
答案 0 :(得分:7)
而不是使用
part = scanner.next();
https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next()
使用
part = scanner.nextLine();
https://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#nextLine()
接下来,只读入令牌的末尾。 nextLine读取的位置,直到用户转到下一行(按回车键)