Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将扫描仪输入拆分为字符串_Java_Arrays_String_Split_Java.util.scanner - Fatal编程技术网

Java 将扫描仪输入拆分为字符串

Java 将扫描仪输入拆分为字符串,java,arrays,string,split,java.util.scanner,Java,Arrays,String,Split,Java.util.scanner,我一直在寻找这个问题的答案有一段时间了,但由于某种原因,它们似乎都不起作用 public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("Please enter full name (last, first)"); String[] personalInfo = scanner.next().split(", ");

我一直在寻找这个问题的答案有一段时间了,但由于某种原因,它们似乎都不起作用

public static void main(String[] args) {

    Scanner scanner = new Scanner(System.in);

    System.out.println("Please enter full name (last, first)");
    String[] personalInfo = scanner.next().split(", ");
    String firstName = personalInfo[1];
    String lastName = personalInfo[0];

    System.out.println("Your info: " +  firstName + " " + lastName);
这是我的密码。我基本上是想获取个人信息,包括名字和姓氏。我想将名字和姓氏拆分为两个不同的字符串,但每当我尝试打印此字符串时,都会出现错误:

线程“main”java.lang.ArrayIndexOutOfBoundsException中出现异常:索引1>超出长度1的界限 at Fines.main(Fines.java:11)

我很困惑,因为我甚至像预期的那样用0开始数组。。我只是不明白哪里出了问题

请帮我一把-提前谢谢

try (Scanner scan = new Scanner(System.in)) {
    System.out.println("Please enter full name (last, first)");
    String firstName = scan.next();
    String lastName = scan.next();
    System.out.println("Your info: " + firstName + ' ' + lastName);
}
scanner.next()。只需将其替换为
scanner.nextLine()
或使用
scanner.next()
两次即可

scanner.next()。只需将其替换为
scanner.nextLine()
或使用
scanner.next()
两次即可

线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常: 索引1>Fines.main(Fines.java:11)处长度1超出界限

因为
personalInfo
的大小是
1
而不是
2

使用
nextLine()
而不是
next()
,因为
next()
只返回空格前的输入

String[]personalInfo=scanner.next().split(“,”)应该是

String[] personalInfo = scanner.nextLine().split(", ");
你可能想看看这个

线程“main”java.lang.ArrayIndexOutOfBoundsException中的异常: 索引1>Fines.main(Fines.java:11)处长度1超出界限

因为
personalInfo
的大小是
1
而不是
2

使用
nextLine()
而不是
next()
,因为
next()
只返回空格前的输入

String[]personalInfo=scanner.next().split(“,”)应该是

String[] personalInfo = scanner.nextLine().split(", ");

您可能需要阅读此

您需要的是scanner.nextLine()从标准输入一直读取到行尾。然后split会像你期望的那样工作

Scanner scanner = new Scanner(System.in);

System.out.println("Please enter full name (last, first)");
String[] personalInfo = scanner.nextLine().split(", ");
String firstName = personalInfo[1];
String lastName = personalInfo[0];

System.out.println("Your info: " +  firstName + " " + lastName);

您需要的是scanner.nextLine()从标准输入一直读取到行尾。然后split会像你期望的那样工作

Scanner scanner = new Scanner(System.in);

System.out.println("Please enter full name (last, first)");
String[] personalInfo = scanner.nextLine().split(", ");
String firstName = personalInfo[1];
String lastName = personalInfo[0];

System.out.println("Your info: " +  firstName + " " + lastName);

阅读扫描仪的javadoc。.next()做什么?什么是“代币”?还有其他更合适的方法吗?请阅读Scanner的javadoc。.next()做什么?什么是“代币”?还有其他更合适的方法吗?