如何在Java中转义字符串?
我正在阅读Java中的源文件,但是当我打印它(sysout)时,转义的字符不再被转义。 如何在Java中转义字符串中的\n
和\t
字符?
您应该使用Apache Commons Text中的StringEscapeUtils
类(您也可以在Apache Commons Lang3中找到该类,但不推荐使用该类)。 您会发现Apache Commons中有很多其他产品可能对您在Java开发中遇到的其他问题有用,因此您不需要重新发明轮子。
您想要的具体调用与“Java转义”有关; API调用是StringEscapeUtils.escapeJava()
。 例如:
System.out.println(StringEscapeUtils.escapeJava("Hello\r\n\tW\"o\"rld\n")
打印出来:
Hello\r\n\tW\"o\"rld\n
该库中还有许多其他转义实用程序。 您可以在Maven Central中找到Apache Commons Text,然后将其添加到您的Maven项目中,如下所示:
org.apache.commons commons-text 1.3
如果您使用的是Gradle:
compile "org.apache.commons:commons-text:1.3"
使用:
\\n
和\\n
和\\t
一些前面带有反斜杠( \
)的字符形成一个转义序列 ,对编译器有特殊意义。 所以在你的情况下, \n
和\t
被视为特殊(分别为换行符和制表符)。 所以我们需要逃避反斜杠,使字面意义上的n
和t
处理。
鉴于String s
,
s = s.replace("\\", "\\\\");
用\\
替换所有\
。
StringEscapeUtils适用于与字符串相关的操作