gpt4 book ai didi

java - 查找每一行的整数和字符串并将它们放入数组中?

转载 作者:行者123 更新时间:2023-11-30 05:49:17 26 4
gpt4 key购买 nike

所以我有这个 dat 文件(txt 文件),其中每个国家有一个州和一个邮政编码。在这个 dat 文件中,我有一个分号来分隔每行的字符串和每行的整数。我还为此使用了一个接口(interface)和一个主类,但这是应该完成大部分工作的类。下面是方法。

PS:我试图在这个网站上找到其他已经回答了我的问题的问题,但没有一个真正有帮助!

这是 dat 文件的内容:

75242;乌普萨拉

90325;于默奥

96133;博登

23642;霍尔维肯

35243;韦克舍

51000;延雪平

72211;韦斯特罗斯

我的问题是,我找不到一种方法来按照我希望的方式保留数组中的整数或字符串。尝试只读取整数和字符串,但这不起作用。另请注意,我尝试读取 dat 文件中的每一行,然后读取每个字符,以尝试将值放入自己的数组中。还尝试通过使用 if'ments 并说“if(Character.is..)”来改变它们。在下面的方法中,我只是 try catch 整数。

还认为由于分号,我应该使用类似“Character.is....”的内容来检查,然后从读取 ch/string 到 int。但当时要迈出一步,否则我将一事无成!

public void read() {

try {
ArrayList<Integer> itemArr = new ArrayList<Integer>();
ArrayList<String> descArr = new ArrayList<String>();
FileReader file = new FileReader("C:\\Users\\me\\Desktop\\places.dat");
BufferedReader r = new BufferedReader(file);
int r1;

while ((r.readLine()) != null) {
while ((r1 = r.read()) != -1) {
char ch = (char) r1;
if (Character.isDigit(ch)) {
itemArr.add(r.read());
}
}
}

} catch (IOException e) {

}
}

这是预期的:它们也已排序,但只要我能弄清楚如何将它们正确存储在每个数组中,我就可以处理这个问题。

23642 霍尔维肯

35243韦克舍

51000 延雪平

72211 韦斯特罗斯

75242 乌普萨拉

90325 于默奥

96133博登

感谢您的所有评论,确实有帮助。

最佳答案

您可以将逻辑更改为以下内容:

String currLine;
while ((currLine = r.readLine()) != null) {
if (currLine.trim().length() > 0) {
String[] split = currLine.split(";");
itemArr.add(Integer.parseInt(split[0]));
descArr.add(split[1]);
}
}

这里我们根据;分割每一行(currLine)并将其存储到数组split中。现在,第 0 个索引将包含数字,第 1 个索引将包含字符串。

要将其添加到 itemArr 中,您需要将其解析为 int。另请注意,如果该行为空,则会跳过该行。现在对其进行排序也非常简单。

关于java - 查找每一行的整数和字符串并将它们放入数组中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54239848/

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