Java扫描仪输入阅读

时间:2019-11-01 05:29:20

标签: java java.util.scanner

我在3行中输入以下内容:

第1行:由正整数int和n组成,中间用空格隔开

第2行:用空格分隔的m int列表

第3行及以后:由空白或换行符分隔的n个单词的列表

我无法将m和n读入我的代码中

我的代码:

Scanner input = new Scanner(System.in);
m = input.nextInt();
n = input.nextInt();
int[] lines = new int[m];
String[] words = new String[n];
input.nextLine();
for (int i = 0; i < m; i++) {
    lines[i] = input.nextInt();
}
for (int i = 0; i < n; i++) {
    words[i] = input.next();
}

如何将行和单词读入数组 在我调用第一个nextLine()并尝试读取数字后,我得到了nullpointerexception

2 个答案:

答案 0 :(得分:1)

我认为以下是您要寻找的东西。对您的程序进行了小的更改。您实际上并不需要行input.nextLine()。希望对您有帮助

示例输入

3 2
9 5 2
Good Luck

程序

Scanner input = new Scanner(System.in);

int m = input.nextInt();
int n= input.nextInt();

int[] lines = new int[m];
for (int i = 0; i < m; i++) {
    lines[i] = input.nextInt();
}

String[] words = new String[n];
for (int i = 0; i < n; i++) {
    words[i] = input.next();
}

答案 1 :(得分:0)

我让用户一次在此处插入输入一行。我不确定您在寻找什么,但这就是我所拥有的:

程序:

Scanner input = new Scanner(System.in);
System.out.print("Enter line 1: ");
int m = input.nextInt();
int n = input.nextInt();
System.out.println(m + " ints and " + n + " words");
System.out.print("Enter line 2: ");
int[] lines = new int[m];
String[] words = new String[n];
input.nextLine();
for (int i = 0; i < m; i++) {
    lines[i] = input.nextInt();
}
System.out.print("Enter line 3: ");
for (int i = 0; i < n; i++) {
    words[i] = input.next();
}
System.out.println(Arrays.toString(lines));
System.out.println(Arrays.toString(words));

控制台:

Enter line 1: 3 4
3 ints and 4 words
Enter line 2: 1 2 3
Enter line 3: four words right here
[1, 2, 3]
[four, words, right, here]