新行字符作为String的一部分

时间:2016-02-04 09:58:21

标签: java string newline

我遇到了创建String的问题,如下所示:

"SSR LANG SA  HK1/EN;S7;P1\n"+

执行此操作的代码应附加\ n作为字符串的一部分+ quote + append string literal + actual new line literal:

javaFormattedText.append("   \""+ tokenizer.nextElement() + "\\n\"+\n");

输出字符串应该是:

"SSR LANG SA  HK1/EN;S7;P1\n"+

但看起来:

"SSR LANG SA  HK1/EN;S7;P1
\n"+

因此,java抱怨未关闭的字符串文字。

这样做的目的是动态生成测试类,其中包含大量需要java格式化字符串的文本信息。

如何实现目标?

UPD

通过这样解决问题:

String line = (String) AIR_textTokenizer.nextElement();

line = line.replace("\n", "").replace("\r", "");

2 个答案:

答案 0 :(得分:5)

您的tokenizer.nextElement()可能会返回一个尾随新行。要删除它:

String str = tokenizer.nextElement();
if (str.endsWith('\n')) {
    str = str.substring(0, str.length - 1);
}
javaFormattedText.append("   \""+ str +"\\n\"+\n");

答案 1 :(得分:-1)

如果您要添加行分隔符,请使用:System.lineSeparator();