这听起来像是一个奇怪的请求,但我想知道 Java 中是否有一种直接的方法可以将“Java 字符串声明”转换为实际的字符串。
让我举个例子来说明一下。我想读这样的内容:
"This is an example " +
"of a complex\nString declaration " +
"in Java"
转换成一个 String 对象,其中包含:
"This is an example of a complex\nString declaration in Java"
(诸如 \n
之类的转义符应视为实际转义符,而不是原始文本)。
原因说明:既然我猜人们会问,那么让我解释一下这背后的理由。我正在使用一个 Java 解析库,它可以分析 Java 文件,并可以从中提取注释或常量等值。然而,解析器有一定的限制,并且不会像上面那样识别复杂的连接和转义,所以基本上我最终只是将整个第一个示例作为原始字符串,并且我必须自己解析、连接和转义它。我只是想知道是否有一些内置的方法(也许通过反射?)来做到这一点。
编辑:我知道我可以很容易地进行一些“粗略”解析(例如:在“+”符号上拆分,然后修剪、合并、删除引号等,但我不知道所有可能存在的变化(字符串支持多少个运算符?只是连接还是还有其他?有多少个转义宏?)
最佳答案
我认为您可以使用 QDox 解决您的问题
它将源文件解析为 JavaClass 的模型, JavaField和 JavaMethod等等,每个都有一个访问器来获取字符串形式的底层源代码。
关于Java:将 "string expression"转换为实际的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31262853/