所以我有这个 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/