1

我有一个这样的字符串数组:

array[0] = "1 4"
array[1] = "2 0"
array[2] = "2 1"
array[3] = "4 2"

并希望在数组元素的第一部分有重复时处理数组并在同一行上打印出数组元素的第二部分,如下所示:

4
0 1
2

我一直在努力解决这个问题,但我越来越困惑......

处理基于连续行。

4

3 回答 3

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();

这假设您的输入文件在第一个字段上排序...

于 2012-10-14T02:40:28.380 回答
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?
}
于 2012-10-14T02:51:13.087 回答
0

我会检查数组列表的索引 n 和 n+1 。标记两个字符串并比较第一个元素。如果第一个元素相同,则可以在一行中从两个字符串中打印第二个元素。

我假设您不是专门寻找 2 作为第一个数字,并且您只想检查列表的连续元素。是这样吗?

于 2012-10-14T02:24:17.600 回答