gpt4 book ai didi

java - 以所需方式格式化输出

转载 作者:行者123 更新时间:2023-11-29 05:01:18 25 4
gpt4 key购买 nike

以下方法产生输出。这段代码的唯一问题是在报告结束后,它向文件添加了两行额外的行,而只需要一个空行。我尝试了各种组合,但无法继续。

有人可以帮忙吗?

private static void save_player_info(String[][] data, String player) {
player=player.toLowerCase();
try {
PrintWriter printWriter= new PrintWriter(new File("out4.txt"));
for(int row=1;row<data.length;row++){
String playerName=data[row][0].toLowerCase();
if(playerName.indexOf(player)!=-1){
String[] fields=data[0];
String[] values=data[row];
for (int i=0;i<fields.length;i++){
printWriter.printf("%21s : %s\n",fields[i],values[i]);
}

printWriter.print("\n");

}
}

printWriter.close();

} catch (FileNotFoundException e) {
e.printStackTrace();
}

}

最佳答案

不是在内部 for 循环之后无条件地添加一个空行,而是应该在内部 for 循环之前有条件地添加一个空行,如果不是第一次的话。

此外,您应该在 printf 中使用 %n 作为换行符,并使用 println() 作为空行。您应该将 close() 放在 finally block 中,或者使用 try-with-resources。此处显示 finally block 解决方案以实现 Java 版本独立性。

PrintWriter printWriter= new PrintWriter(new File("out4.txt"));
try {
boolean first = true;
for(int row=1;row<data.length;row++){
String playerName=data[row][0].toLowerCase();
if(playerName.indexOf(player)!=-1){
String[] fields=data[0];
String[] values=data[row];
if (first)
first = false;
else
printWriter.println();
for (int i=0;i<fields.length;i++){
printWriter.printf("%21s : %s%n",fields[i],values[i]);
}
}
}
} finally {
printWriter.close();
}

关于java - 以所需方式格式化输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32027576/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com