我必须显示包含Error in ./HomePage class HomePage - caused by: Cannot read property 'name' of undefined
,\n
等可见控制字符的字符串。
我试过像here这样的引语,我也试过做像
\t
但我失败了
答案 0 :(得分:3)
替代方法:使用可见字符而不是转义序列。
要使控制字符“可见”,请使用Unicode Control Pictures块中的字符,即将\u0000
- \u001F
映射到\u2400
- \u241F
,和\u007F
到\u2421
。
请注意,这需要输出为Unicode,例如UTF-8,不是像ISO-8859-1那样的单字节代码页。
private static String showControlChars(String input) {
StringBuffer buf = new StringBuffer();
Matcher m = Pattern.compile("[\u0000-\u001F\u007F]").matcher(input);
while (m.find()) {
char c = m.group().charAt(0);
m.appendReplacement(buf, Character.toString(c == '\u007F' ? '\u2421' : (char) (c + 0x2400)));
if (c == '\n') // Let's preserve newlines
buf.append(System.lineSeparator());
}
return m.appendTail(buf).toString();
}
使用上述方法输出作为输入文本:
␉private static String showControlChars(String input) {␍␊
␉␉StringBuffer buf = new StringBuffer();␍␊
␉␉Matcher m = Pattern.compile("[\u0000-\u001F\u007F]").matcher(input);␍␊
␉␉while (m.find()) {␍␊
␉␉␉char c = m.group().charAt(0);␍␊
␉␉␉m.appendReplacement(buf, Character.toString(c == '\u007F' ? '\u2421' : (char) (c + 0x2400)));␍␊
␉␉␉if (c == '\n')␍␊
␉␉␉␉buf.append(System.lineSeparator());␍␊
␉␉}␍␊
␉␉return m.appendTail(buf).toString();␍␊
␉}␍␊
答案 1 :(得分:1)
只需使用转义版本(即'\n'
)替换'\\n'
的出现次数,如下所示:
final String result = str.replace("\n", "\\n");
例如:
public static void main(final String args[]) {
final String str = "line1\nline2";
System.out.println(str);
final String result = str.replace("\n", "\\n");
System.out.println(result);
}
将产生输出:
line1
newline
line1\nnewline
答案 2 :(得分:0)
刚做
result = result.replace("\\", "\\\\");
会起作用!!