我正在编写一个程序来读取文件并将字符串存储在 arraylist 中并将整数存储在数组中。该文件包含字符串和整数,格式为:String int
我已经让字符串部分正常工作,我想知道为什么下面的代码用数字 7 填充我的数组六次,而不是正确的数字。
正确的输出是:
12, 14, 16, 31, 42, 7
但它给出了:
7, 7, 7, 7, 7, 7
代码:
BufferedReader buffy = new BufferedReader(new FileReader(fileName));
while((str = buffy.readLine()) != null) {
for(int i = 0; i <= arrayInt.length - 1; i++) {
for(int k = 0; k <= str.length()-1; k++) {
if(str.substring(k, k + 1).equals(" ")) {
String nums = str.substring(k+1);
arrayInt[i] = Integer.parseInt(nums);
}
}
}
}
buffy.close();
最佳答案
发生这种情况是因为对于文件中的每一行,您都填充了整个数组。
试试这个:
int i = 0;
BufferedReader buffy = new BufferedReader(new FileReader(fileName));
while((str = buffy.readLine()) != null) {
if(i < arrayInt.length) {
for(int k = 0; k <= str.length()-1; k++) {
if(str.substring(k, k + 1).equals(" ")) {
String nums = str.substring(k+1);
arrayInt[i] = Integer.parseInt(nums);
break;
}
}
i++;
}
}
buffy.close();
您也可以使用indexOf
int i = 0;
BufferedReader buffy = new BufferedReader(new FileReader(fileName));
while((str = buffy.readLine()) != null) {
if(i < arrayInt.length) {
int k = str.indexOf(" ");
if(k!=-1) {
String nums = str.substring(k+1);
arrayInt[i] = Integer.parseInt(nums);
}
i++;
}
}
buffy.close();
关于java - 我的循环用数字七、六次填充数组,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53531572/