我正在寻找一种方法,可以将包含字符转义序列的字符串转换为表示的字符。
例如,我想解析字符串
因此需要有类似以下功能的程序:
但在Eclipse中,即使使用相同的参数,输出内容也完全不同,特别是引号非常混乱。
例如,我想解析字符串
\"
(其中包含反斜杠和双引号两个字符),并将其转换为一个字符"
。所以,把多个字符的数组变成了一个字符。因此需要有类似以下功能的程序:
package test;
public class Test {
private static char parseChar(String string) {
char c = 0;
if ("\\n".equals(string)) {
c = '\n';
}else if ("\\t".equals(string)) {
c = '\t';
}else if ("\\r".equals(string)) {
c = '\r';
}else if ("\\f".equals(string)) {
c = '\f';
}else if ("\\b".equals(string)) {
c = '\b';
}else if ("\\\'".equals(string)) {
c = '\'';
}else if ("\\\"".equals(string)) {
c = '\"';
}else if ("\\\\".equals(string)) {
c = '\\';
}
return c;
}
public static void main(String[] args) {
for (String arg : args) {
System.out.println(arg + " : " + (int)parseChar(arg) + " : " + parseChar(arg) + ";");
}
}
}
我无法相信在java.lang或其他地方没有任何能够为我提供良好(可能是本地)代码的东西,因为我觉得上面的代码可能不完整且不能解析每个有问题(可转义?)的字符,因为我是一个新手。 我想要一个能够执行与String构造函数相同操作的工具:
String st = "\"";
char ch = st.charAt(0);
ch 输出: ";
感谢您阅读,如果不清楚,我会定期检查并进行更正。
PS:
当我运行上述代码时:
java -classpath ~/workspace/MacroRecorder/bin/ test.Test \\n \\t \\f \\r \\b \\\' \\\" \\\\;
...它输出:
\n : 10 :
;
\t : 9 : ;
\f : 12 :
;
;r : 13 :
\b : 8 :;
\' : 39 : ';
\" : 34 : ";
\\ : 92 : \;
但在Eclipse中,即使使用相同的参数,输出内容也完全不同,特别是引号非常混乱。