我有一个像这样的字符串数组:
array[0] = "1 4"
array[1] = "2 0"
array[2] = "2 1"
array[3] = "4 2"
并且想要处理数组并打印出数组元素的第二部分 当数组元素的第一部分有重复时,在同一行上,如下所示:
4
0 1
2
我一直在努力解决这个问题,但我一直在变得更加困惑......
处理基于连续的行。
答案 0 :(得分:1)
对我来说,这看起来像是一个简单的Java编码问题:
String lastKey = null;
for (String str : array) {
String[] parts = str.split(" ");
if (parts[0].equals(lastKey)) {
System.out.print(" ");
} else if (lastKey != null) {
System.out.println();
}
System.out.print(parts[1]);
lastKey = parts[0];
}
System.out.println();
这假设你的输入文件是在第一个字段上订购的......
答案 1 :(得分:1)
查看评论,看起来您可以使用MultiMaps并简化设计
MultiMap mhm = new MultiHashMap();
for ( string line: array) {
String []pair = line.split(" ");
mhm.put(pair[0],pair[1]);
}
for (Collection coll = (Collection) mhm.values() ) {
//print all values from collection?
}
答案 2 :(得分:0)
我会检查数组列表的索引n和n + 1。对两个字符串进行标记并比较第一个元素。如果第一个元素相同,则可以从一行中的两个字符串中打印第二个元素。
我假设您不是特意将2作为第一个数字,并且您只想检查列表中的连续元素。是这样的吗?