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()做什么?什么是“代币”?还有其他更合适的方法吗?