是这样的,我需要通过 Java 执行代码字符串。我得到了一个字符串作为参数,现在要把这个字符串作为内部字符串代码的参数,涉及到诸多转义问题。请问有一步到位的办法吗?
比如:
public void exec(String cmd){
...
}
public void main(String[] argv){
String c=getText();
exec("System.out.println(\\"" + c + "\\");");
}
如果c
中没有特殊字符还好,如果有\n
之类的特殊字符,肯定会导致错误。所以我想把这些特殊字符还原。最好不要用replace
。
替换却不用replace?那岂不是自己去实现一个replace?或者说你自己循环判断一下你所要去除的特殊字符。
至于你说的想执行“源字符串代码”,大体思路分两种
不用replace的话,可用通过将字符串转换成char[],循环判断替换,再转换成String
public static String unEscapeString(String s) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < s.length(); i++)
switch (s.charAt(i)) {
case '\n':
sb.append("\\n");
break;
case '\t':
sb.append("\\t");
break; // ... rest of escape characters
default:
sb.append(s.charAt(i));
}
return sb.toString();
}