作为输入,我得到字符串 "some text\\nsome text"
-> 显示为 "some text\nsome text"
。
如何删除一个反斜杠并得到
"some text\nsome text"
-> 显示为
"some text
some text"
这也适用于其他特殊字符,如 "\t"
?
使用 regex 可以只做 like
textLine.replace("\\n", "\n") 等。
还有别的办法吗?
最佳答案
您不需要重新发明轮子。您可以使用 org.apache.commons.lang3.StringEscapeUtils
用于转义 Java 字符串。取消转义在字符串中找到的任何 Java 文字。例如,它将把一系列 '\
' 和 'n
' 变成换行符,除非 '\
' 前面有另一个“\
”。在这种情况下,您需要再转义一次。
代码:
import static org.apache.commons.lang3.StringEscapeUtils.unescapeJava;
public class Unescape {
public static void main(String[] args) {
System.out.println("some text\\nsome text");
System.out.println(unescapeJava("some text\\nsome text"));
}
}
输出:
some text\nsome text
some text
some text
关于java - 将转义的转义序列替换为其未转义的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10350584/