如何在java字符串中应用转义字符

时间:2013-04-06 08:01:44

标签: java string escaping eval

我的问题是 我从文件中读取了一个文本 在文本文件中有一些类似的文本

Base64.valueOf("\030)?8*\"q1;16=\0331:?5/8~:8(6y", 42 - -33))

我能够使用正则表达式获取文本

\030)?8*\"q1;16=\0331:?5/8~:8(6y

但字符串等于语句

regText = "\\030)?8*\\"q1;16=\\0331:?5/8~:8(6y"

但我想要的确切字符串是

expectedText = "\030)?8*\"q1;16=\0331:?5/8~:8(6y"

那么如何将regText转换为expectedText

here中,它几乎完成了我的预期

除非没有将“\ 030”转为“\ 030”而是转为“030”

2 个答案:

答案 0 :(得分:1)

如果写入文件的程序首先正确写入数据,问题就变得容易了。如果不可能,请使用apache commons lang中的StringEscapeUtils。

System.out.println(StringEscapeUtils.unescapeJava("New line: \\n Tab: \\t"));

该调用手动处理\ n并将其转换为换行符。它只处理文字。您可以自己选择octals和other escapes。你总是可以分叉代码并处理octals。

答案 1 :(得分:0)

使用String#replaceAll,您可以执行以下操作:

expectedText = regText.replaceAll("\\\\", "\\");

regText字符串中的双反斜杠替换为您期望的简单反斜杠。

相关问题