我想对文本文件中的数据列表执行一个函数,但我不知道如何执行。我对如何操作数组和字符串的理解很弱,这就是我做这个项目的原因。
我的文本文件如下所示:
0, 0. 50 0.5 66;
1, 0. 69 2. 70;
2, 0.5 48 0.5 71;
3, 1. 47 1. 75;
4, 2. 52 1. 74;
5, 2. 71 1. 80;
6, 3. 65 1. 61;
7, 4. 62 1. 68;
我正在寻找这样的结果:
0, 0. 50 0.5 66 0. 69 2. 70;
1、0.5 48 0.5 71;
2, 1. 47 1. 75;
3, 2. 52 1. 74 2. 71 1. 80;
4, 3. 65 1. 61;
5, 4. 62 1. 68;
前两个条目的第二个元素是相同的 (0.),我想将这些条目合并到同一行。第 4 行和第 5 行相同。
据我所知,我必须将文件读入数组列表,但我不知道如何查询数组列表以查找第二个元素具有相同值的所有条目,然后将整个条目与另一个条目合并条目。
我没有代码可以显示,因为我不知道从哪里开始。
感谢您的任何意见。
最佳答案
我不会使用列表,我会使用 map 。 map 有一个方法
put(key, value)
因此,如果您对给定行的第二列感兴趣,我会执行类似(伪代码)的操作
Map<String, String> lookup = new HashMap<String, String>();
for (...) { // loop over the lines in the file
String key = getSecondFieldFromLine(line); // implement this
String val = lookup.get(key);
if (val != null ) {
merge(val, line); // implement this according to whatever merge means
}
lookup.put(key, val);
}
您可能需要对此进行调整(例如,存储合并的结果以放入查找中),您在这里所做的是利用这样一个事实:对于 Map,放置和获取操作非常快(HashMap使用每个对象上的 hashCode 方法)。因此,您可以轻松确定是否已经有与您要查找的字段相关的行,因为您使用感兴趣的字段作为键来查找该字段所在的字段。
关于java - 根据某些元素合并数组列表的字符串如何,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6022933/