Java 如何创建带回车符的字符串?

Java 如何创建带回车符的字符串?,java,string,Java,String,对于JUnit测试,我需要一个由多行组成的字符串。但我得到的只是一条单行线。我尝试了以下方法: String str = ";;;;;;\n" + "Name, number, address;;;;;;\n" + "01.01.12-16.02.12;;;;;;\n" + ";;;;;;\n" + ";;;;;;"; 我还尝试了\n\r而不是\

对于JUnit测试,我需要一个由多行组成的字符串。但我得到的只是一条单行线。我尝试了以下方法:

    String str = ";;;;;;\n" +
                 "Name, number, address;;;;;;\n" + 
                 "01.01.12-16.02.12;;;;;;\n" + 
                 ";;;;;;\n" + 
                 ";;;;;;";

我还尝试了
\n\r
而不是
\n
。System.getProperty(“line.separator”)也不起作用。它生成字符串形式的
\n
,并且不返回回车符。那我该怎么解决呢?

试试
\r\n
其中
\r
是回车。还要确保您的输出没有新行,因为调试器可以以
\n
\r
\t
等形式向您显示特殊字符。

我所知道的在Java中生成新行字符的最快方法是:
String.format(“%n”)

当然,您可以在
%n
周围放置任何您想要的内容,如:

String.format(“line1%nline2”)

即使你有很多台词:


String.format(“%s%n%s%n%s%n%s”、“第1行”、“第2行”、“第3行”、“第4行”)
这取决于“多行”的含义。不同的操作系统使用不同的行分隔符

在Java中,
\r
始终是回车符,
\n
是换行符。在Unix上,换行符只需
\n
就足够了,而Windows上的许多程序需要
\r\n
。您可以在平台上使用默认换行符
System.getProperty(“line.separator”)
或使用其他答案中提到的
String.format(“%n”)


但实际上,您需要知道是否正在尝试生成特定于操作系统的换行符-例如,如果这是作为特定协议的一部分传输的文本,那么您应该看到该协议认为是什么换行符。例如,定义一个行分隔符
\r\n
,即使在Unix上运行,也应使用此分隔符。所以这都是关于背景的。

谢谢你的回答。我没有注意到我的数据存储在一个
列表中,该列表被传递给测试方法。错误在于我将字符串放入ArrayList的第一个元素中。这就是为什么我认为字符串只包含一行,因为调试器只显示了一个条目。

执行以下操作: 第一步:你的字符串

String str = ";;;;;;\n" +
            "Name, number, address;;;;;;\n" + 
             "01.01.12-16.02.12;;;;;;\n" + 
             ";;;;;;\n" + 
             ";;;;;;";
步骤2:只需将所有“\n”替换为“%n”,结果如下所示

String str = ";;;;;;%n" +
             "Name, number, address;;;;;;%n" + 
             "01.01.12-16.02.12;;;;;;%n" + 
            ";;;;;;%n" + 
            ";;;;;;";
请注意,我刚刚将“%n”替换为“\n”

步骤3:现在只需调用format()


这就是你要做的

尝试追加字符
。追加('\r')。追加('\n')而不是字符串
.append(\\r\\n”)

我不是一个java爱好者,但只是为了帮助您,我认为回车的正确顺序是\r\n您认为它不包含新行吗?在调试器中还是在输出文件中?如果我们查看已接受的答案,问题就不清楚了。当问这个问题时,我不知道这个问题与回车问题无关。如果我改变了问题的标题,人们会抱怨所有其他答案都没有意义,这也行不通。现在我有一个字符串,它包含\r\n而不是新行。您认为它在哪里不包含新行?在调试器或输出文件中?请注意,
%n
取决于平台。
str=String.format(str);