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

2022-09-02 02:38:32

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

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

我也尝试过代替.System.getProperty(“line.separator”) 也不起作用。它产生一个 in String 并且没有回车符。那么我该如何解决这个问题呢?\n\r\n\n


答案 1

这取决于您所说的“多行”是什么意思。不同的操作系统使用不同的行分隔符。

在 Java 中,始终是回车符,并且是换行符。在Unix上,只需换行即可,而Windows上的许多程序需要.您可以在平台上获得默认换行符使用或其他答案中提到的使用。\r\n\n\r\nSystem.getProperty("line.separator")String.format("%n")

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


答案 2

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

当然,你可以把任何你想要的东西放在周围,比如:%n

String.format("line1%nline2")

或者即使你有很多行:

String.format("%s%n%s%n%s%n%s", "line1", "line2", "line3", "line4")