在Java中从文件中获取以空格分隔的数字

时间:2014-11-28 18:43:36

标签: java

这是我的输入文件。我想从它做一个int数组:

3 5 1 5 7 1 10 1 6 10 6 2 1 2 0 5 8 1


BufferedReader in = new BufferedReader(new FileReader("yes.txt"));
String s = in.readLine();
int[] score = new int[s.length()];
for(int j=0;j<s.length();j+=2){
    score[j] = Character.getNumericValue(s.charAt(j));
}

我没有得到所需的输出。请帮帮我。

预期产出:

score[0] = 3, score[1] = 5 and so on

2 个答案:

答案 0 :(得分:3)

您的代码假定所有输入数字都有一个数字,输入示例包括两位数字--10。

我建议你采取不同的方法:

BufferedReader in = new BufferedReader(new FileReader("yes.txt"));
String s = in.readLine();
String[] strScores = s.split(" ");
int[] score = new int[strScores.length];
for(int j=0;j<strScores.length;j++){
    score[j] = Integer.parseInt(strScores[j]);
}

答案 1 :(得分:2)

使用split调用

,而不是使用固定数字宽度进行编码
String[] parts = s.split(" ");
int[] score = new int[parts.length];
for (int i = 0; i < parts.length; i++)
    score[i] = Integer.parseInt(parts[i]);