这可能听起来像是一个奇怪的请求,但我想知道Java中是否有一种直接的方式将“Java String声明”转换为实际的String。
让我用一个例子说清楚。我想读这样的东西:
"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文件,我可以从中提取例如注释或常量的值。但是,解析器有点受限,并且不会像上面那样识别复杂的连接和转义,所以基本上我最终只用整个第一个例子作为原始字符串,我必须自己解析和连接并转义它。我只是想知道是否有一些内置方式(可能是通过反射?)来做到这一点。
编辑:我知道我可以很容易地进行一些“粗略”解析(例如:拆分“+”符号然后修剪,合并,删除引号等,但我不知道所有的可能存在的变化(字符串支持多少个运算符?只是连接或者还有其他?还有多少个转义宏?)答案 0 :(得分:1)
我认为您可以使用QDox
解决问题它将源文件解析为JavaClass,JavaField和JavaMethod等模型,每个模型都有一个访问器,可以将基础源代码作为字符串。