为了账号安全,请及时绑定邮箱和手机立即绑定

Java扫描仪输入读取

Java扫描仪输入读取

哈士奇WWW 2024-01-25 15:18:16
我有以下 3 行输入:第 1 行:由正整数 m 和 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() 后如何将行和单词读入数组,并尝试读取数字,我得到一个空指针异常
查看完整描述

2 回答

?
冉冉说

TA贡献1877条经验 获得超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();

}


查看完整回答
反对 回复 2024-01-25
?
慕后森

TA贡献1802条经验 获得超5个赞

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


程序:


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]


查看完整回答
反对 回复 2024-01-25
  • 2 回答
  • 0 关注
  • 44 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信