如何在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被视为特殊(分别为换行符和制表符)。 所以我们需要逃避反斜杠,使字面意义上的nt处理。

鉴于String s

 s = s.replace("\\", "\\\\"); 

\\替换所有\

StringEscapeUtils适用于与字符串相关的操作