先生,我正在尝试打印阵列的第0个元素,但我不能。 这是我的代码
import java.util.Scanner;
public class prog3
{
public static void main (String[] args){
Scanner input = new Scanner(System.in);
int size = input.nextInt();
String arr[] = new String[size];
for (int i=0; i<size; i++){
arr[i]= input.nextLine();
}
System.out.print(arr[0]);
}
}
当我尝试打印arr[0]
时它的返回空白但是当我打印arr[1]
时它返回第0个元素值。你能不能帮我找到我的错误。
答案 0 :(得分:5)
更改
arr[i]= input.nextLine();
到
arr[i]= input.next();
它有效。这是因为nextLine(
)读取空格,然后看起来arr[0]
为空。你可以看到这个,因为如果size
是3,你只能输入两次。有关扫描仪的详情,请参阅http://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html:)
答案 1 :(得分:2)
试试这个伙伴:
input.nextLine(); // gobble the newline
for (int i = 0; i < size; i++) {
arr[i] = input.nextLine();
}
答案 2 :(得分:2)
更正后的代码:在input.nextLine();
input.nextInt()
import java.util.Scanner;
public class prog3{
public static void main (String[] args){
Scanner input = new Scanner(System.in);
int size = input.nextInt();
input.nextLine();
String arr[] = new String[size];
for (int i=0; i<size; i++){
arr[i]= input.nextLine();
}
System.out.print(arr[0]);
}
}
输入:
2
45
95
<强>输出强>
45
<强>解释强>
问题在于 input.nextInt()命令,它只读取int值。因此,当您继续使用 input.nextLine()进行阅读时,您会收到“\ n”Enter键。所以要跳过这个,你必须添加 input.nextLine()。 Scanner issue when using nextLine after nextXXX