gpt4 book ai didi

java - 我的循环用数字七、六次填充数组,为什么?

转载 作者:行者123 更新时间:2023-11-30 05:53:35 25 4
gpt4 key购买 nike

我正在编写一个程序来读取文件并将字符串存储在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com