嗯,你好。我想要做的是:我有一组来自树图的键值对,我在txt文件中写入。输出如下:
1 4 2 8 2
3 8 2 5 1
6 9 1 4 3
etc
键位于第一列,并且已排序。我的目标是在第1列中找到缺失值的位置,为每个缺失的数字插入一个空行,并将它们写入没有第一列的文件。所以文件中的列表可能就是这样:
4 2 8 2
//blank line
8 2 5 1
//blank line
//blank line
9 1 4 3
etc
我试图计算每个关键线之间的差异并显示这样的线,但没有。任何建议都将不胜感激。
...
int i = 0;
for (Integer key : rowMap.keySet()) {
String row = key + "";
for (Integer[] rows : rowMap.get(key)) {
for (Integer col : rows) {
row += " " + col;
}
------> }
i++;
if (key.equals(i)){
writer.println(row);
}
else {
int dif = key-i;
int j;
for (j=1; j<=dif; j++){
writer.println("");
}
writer.println(row);
}
}
writer.close();
...
答案 0 :(得分:0)
dif的部分有点令人困惑。但是你可能认为它并不那么复杂。在为某个键打印一行之前,您只需打印最后一个键和当前键之间的所有空行(如果有的话):
public static void print(SortedMap<Integer, int[]> map, PrintWriter writer) {
int last = 1;
for (int key : map.keySet()) {
for (int i = last + 1; i < key; i++) {
writer.println();
}
last = key;
writer.println(Arrays.toString(map.get(key)));
}
}
(为简单起见,我只使用Arrays.toString(...)
格式化一行。根据需要替换它。)