【问题标题】:Storage of /n in String object. Java [closed]在 String 对象中存储 /n。 Java [关闭]
【发布时间】:2014-09-23 21:17:43
【问题描述】:

我的程序有一点不当行为。

他的一个方法应该构建一个字符串,然后将其返回以在 Java Swing GUI 中显示。 在它的某些部分,它需要存储一个“换行符”(我不知道正确的名称)“/n”。

但是当我在 gui 中显示这个字符串时,它包含 /n 而不是正确跳行。

这有点令人困惑,但我认为您可以通过代码弄清楚:

public String draw(Robot robot, MapClass mapa) {
        map = mapa.getMapa();
        String mapBuffer = "";
        for (int i = 0; i < mapa.getLinhas(); i++) {
            for (int j = 0; j < mapa.getColunas(); j++) {
                if ((i == robot.getPosX()) & (j == robot.getPosY())){
                    System.out.print(robot.convertToChar() + " ");
                    mapBuffer = mapBuffer + robot.convertToChar() + " ";
                }
                else{
                    System.out.print(map[i][j] + " ");
                    mapBuffer = mapBuffer + map[i][j] + " ";
                }   
            }
            mapBuffer = mapBuffer + "/n";
            System.out.println();
        }

        return mapBuffer;
}

这个字符串显示在一个swing textArea中:

textArea.append(drawer.draw(robot, map));

谢谢。

【问题讨论】:

  • 换行符是'\n',而不是'/n'
  • 大声笑这样一个愚蠢的错误。谢谢-.-
  • 另外 - 为了提高效率,您应该考虑使用 StringBuilder 来构建您的返回字符串。
  • 对于独立于平台的交易,您可能希望将\n 替换为%n 并返回String.format(mapBuffer)。见How do I get a platform-independent new line character?

标签: java string swing


【解决方案1】:

问题出在mapBuffer = mapBuffer + "/n"; 您正在将/n 文字附加到mapBuffer。如果你想要换行符,你应该用\n替换它

【讨论】:

  • 如前所述,感谢大家不加评判地解决了这样一个愚蠢的错误,我不敢相信我没有看到,经过很长时间认为这是挥杆的问题......
猜你喜欢
  • 2021-12-04
  • 2023-03-06
  • 1970-01-01
  • 1970-01-01
  • 2021-11-16
  • 2013-12-08
  • 1970-01-01
  • 2014-03-23
  • 1970-01-01
相关资源
最近更新 更多