对于JUnit测试,我需要一个由多行组成的String.但我得到的只是一个单行字符串.我尝试了以下方法:
String str = ";;;;;;\n" +
"Name, number, address;;;;;;\n" +
"01.01.12-16.02.12;;;;;;\n" +
";;;;;;\n" +
";;;;;;";
Run Code Online (Sandbox Code Playgroud)
我也试过\n\r而不是\n.System.getProperty("line.separator")也不起作用.它产生一个\n字符串,没有回车.那我怎么解决呢?
Jon*_*eet 37
这取决于你的"多行"的含义.不同的操作系统使用不同的行分隔符.
在Java中,\r总是回车,并且\n是换行.在Unix上,\n对于换行就足够了,而Windows上的许多程序都需要\r\n.您可以使用平台默认换行符System.getProperty("line.separator")或使用String.format("%n")其他答案中提到的.
但实际上,您需要知道是否正在尝试生成特定于操作系统的换行符 - 例如,如果这是将作为特定协议的一部分传输的文本,那么您应该看到该协议认为是什么新队.例如,RFC 2822定义了一个行分隔符,即使你在Unix上运行也\r\n应该使用它.所以关于背景.
我知道用Java生成换行符的最快方法是: String.format("%n")
当然,你可以把你想要的任何东西放在一起%n:
String.format("line1%nline2")
或者即使你有很多行:
String.format("%s%n%s%n%s%n%s", "line1", "line2", "line3", "line4")
感谢您的回答。我错过了我的数据存储在List<String>传递给测试方法的中。错误在于我将字符串放入了 ArrayList 的第一个元素中。这就是为什么我认为字符串只包含一行,因为调试器只向我显示了一个条目。
| 归档时间: |
|
| 查看次数: |
124697 次 |
| 最近记录: |