gpt4 book ai didi

java - 我的数组没有在 while 循环之外保留其值?

转载 作者:行者123 更新时间:2023-12-01 17:03:49 24 4
gpt4 key购买 nike

我正在测试我的数组列表是否保留了文本文件中的值,当我在 while 循环之外打印数组来检查这一点时,我只从文件中获取最后一个值 (20141013)。当我在 while 循环内打印 for 循环时,我逐行获取列表。问题是我现在必须获取该数组,删除任何不是 8 位数字的内容打印它,获取 8 位数字的值打印它,然后对其进行排序并打印它,但我不认为我的数组保留了这些值。如何确保我的数组填充了正确的值?我不必验证任何日期。

20141003
20131105
19990205
20080304,20080305,20080306
19990206,hello,20141001,200003
20050505
July
November,August
19640503
19980707
19642199
20141013
import java.util.*;

public class Tokens1 {
public static TextFileInput myFile;
public static StringTokenizer myTokens;
public static String[] list;
public static String line;

public static void main(String[] args) {

myFile = new TextFileInput("project1.txt");

while ((line = myFile.readLine()) != null) {
myTokens = new StringTokenizer(line, ",");
list = new String[myTokens.countTokens()];

int i = 0;

while (myTokens.hasMoreTokens()) {
list[i] = myTokens.nextToken();
i++;
} //while

} //while

for (int j = 0; j < list.length; j++)
System.out.println(list[j]);
} //main
}

最佳答案

您在循环中重新分配 list 数组。因此,其中仅包含最后读取的行。

您想要将元素添加到列表中:

public static List<String> list = new ArrayList<>();

// in the while loop
for(String s : line.split(",")){
list.add(s);
}

现在 list 包含所有字符串,您可以在 while 循环之外打印它们:

for(String s : list) {
System.out.println(s);
}

使用StringTokenizer进行编辑:

// in the while loop
myTokens = new StringTokenizer(line, ",");
while(myTokens.hasMoreTokens()){
list.add(myTokens.nextToken());
}

关于java - 我的数组没有在 while 循环之外保留其值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26433912/

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