换行符字符缩进? (JAVA)

时间:2012-08-28 08:27:47

标签: java string newline indentation

我正在尝试使用\ n来创建字符串列表,但每当我添加多个字符串时,字符串会缩进到前一个字符串的点,因此示例输出将为:

0 hello nain
            1 test nain
                       2 huh nain

我不知道为什么会这样做。这是我创建字符串的代码:

            String[] posts = currentTopic.getMessages("main");
            //String[] postsOutput = new String[posts.length];
            String postsOutput = "0 " + posts[0];

            for(int i = 1; i < posts.length; i++){
                postsOutput += "\n" + i + " " + posts[i];
                //postsOutput[i] = i + posts[i];
            }

            sc.close();
            return postsOutput;

我也尝试将\ n移动到附加的末尾,但结果仍然相同。任何帮助将不胜感激。

由于

4 个答案:

答案 0 :(得分:6)

看起来你正处于“\ n”刚下来的系统(换行)并且你错过了所需的回车。

这不应该是你应该关心的事情:line.separator属性正在调整到主机操作系统,使其行为类似于System.out.println

答案 1 :(得分:3)

尝试\ r \ n,即回车和换行。

答案 2 :(得分:2)

我认为这是使用String.format的一个很好的示例,因为%n始终使用系统特定的行分隔符。在你的循环内写:

postsOutput += String.format("%n%d %d", i, posts[i]);

答案 3 :(得分:1)

您应该使用保存基础系统换行符的属性System.getProperty("line.separator")

String newline = System.getProperty("line.separator");
String[] posts = currentTopic.getMessages("main");
//String[] postsOutput = new String[posts.length];
String postsOutput = "0 " + posts[0];

for(int i = 1; i < posts.length; i++){
    postsOutput += newline  + i + " " + posts[i];
    //postsOutput[i] = i + posts[i];
}

sc.close();
return postsOutput;