Java中TreeMap的for循环实现及字符串拼接格式修正
修正TreeMap转字符串的格式问题
你遇到的问题核心是换行符的添加时机不对,咱们来拆解下原因:
- 原代码在
position=0(也就是第一行第一个元素)的时候就先追加了换行,导致结果开头多了个空行 - 循环结束后没有给最后一行补上换行,所以结尾缺少了预期的换行符
这里给你两种简单的修正方案:
方案一:每行末尾添加换行
这种方式更直观,每当处理到每行的最后一个元素(也就是position为2、5、8的时候),就追加换行:
StringBuilder result = new StringBuilder(); for (int position = 0; position <= 8; position++) { // 先追加当前位置的元素 result.append(board.get(position)); // 当是每行最后一个元素时,添加换行 if (position % 3 == 2) { result.append("\n"); } } return result.toString();
这样执行后,就会生成---\n---\n---\n的预期结果。
方案二:调整开头换行的逻辑,最后补换行
如果想保留原有的“每行开头加换行”的思路,可以修改判断条件,跳过第一行的开头换行,最后再给整个结果补个换行:
StringBuilder result = new StringBuilder(); for (int position = 0; position <= 8; position++) { // 只有当不是第一行的开头时,才添加换行 if (position % 3 == 0 && position != 0) { result.append("\n"); } result.append(board.get(position)); } // 最后给结果追加一个换行 result.append("\n"); return result.toString();
两种方案都能达到你想要的输出效果,选哪种看你更习惯哪种逻辑啦~
内容的提问来源于stack exchange,提问作者user14155572
相关产品推荐
相关产品推荐

