容量为5的字符串数组将只显示前4个元素(java-scanner类)
我是java编程新手,通过scanner类学习输入。我的程序接受容量为5的字符串数组,并将其显示给用户 但是,数组只接受4,我不知道为什么。任何帮助都将不胜感激 我的代码 接受字符串数组容量为5的字符串数组将只显示前4个元素(java-scanner类),java,Java,我是java编程新手,通过scanner类学习输入。我的程序接受容量为5的字符串数组,并将其显示给用户 但是,数组只接受4,我不知道为什么。任何帮助都将不胜感激 我的代码 接受字符串数组 String n[] = new String[5]; for (int i = 0 ; i<5 ; i++) { n[i] = sc.nextLine(); } for(int i=0 ; i<5 ; i++) {
String n[] = new String[5];
for (int i = 0 ; i<5 ; i++)
{
n[i] = sc.nextLine();
}
for(int i=0 ; i<5 ; i++)
{
System.out.println(n[i]);
}
String n[]=新字符串[5];
对于(int i=0;i而言,如果您提供有关输入源的信息,这将非常有用。但是,sc.nextLine()
始终将扫描仪前进到下一行(不包括行末尾的任何行分隔符)
给定(例如)“test.txt”等输入文件,您的代码是正确的:
第1行
第2行
第3行
第4行
第5行
我会确保您的输入之间没有空格,并且您不会意外地调用代码前面的某个地方的sc.nextLine()
(或任何扫描器next
方法)。可能您从文件中读取,最后一行不会以换行结束
从扫描仪
可以首先测试下一行是否可用:
String[] n = new String[5];
for (int i = 0; i < 5; i++) {
if (!sc.hasNextLine()) {
System.out.println("Failing to read line at index " + i);
break;
}
n[i] = sc.nextLine();
}
String[]n=新字符串[5];
对于(int i=0;i<5;i++){
如果(!sc.hasNextLine()){
System.out.println(“未能读取索引“+i”处的行);
打破
}
n[i]=sc.nextLine();
}
请注意,String[]n
是编写数组变量的常用方法。String n[]
是为C程序员编写的。我创建了一个测试脚本,其中包含您的代码,它对我有效。您的输入和相应的输出是什么?对我有效。您可以复制/粘贴整个main()吗
method?有人告诉我,这是@Pshemo是的,我正在使用scanner类的next().charAt(0)函数,在接受数组之前,它正在接受字符数组…我不知道这会是一个问题,如何解决这个问题?用这些信息编辑你的问题,代码。我已经使用了next().charAt(0)函数在调用nextline()函数之前接受字符数组。我不知道这会有问题,如何解决?