sin*_*ata 7 java string encoding parsing char
我正在寻找一种方法将包含字符转义序列的字符串转换为表示的字符.
因此,例如,我想将字符串\"
(有两个字符,反斜杠和双引号)解析为char "
.所以,一组字符变成一个字符.
所以可能会做这样的事情,反之亦然:
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) + ";");
}
}
}
Run Code Online (Sandbox Code Playgroud)
我无法相信java.lang或其他任何东西都没有能为我提供好的(可能是原生的)代码,因为我觉得上面的代码可能不完整而且没有解析每个有问题(可逃避的?)字符,因为我很好是一个菜鸟.我想要一个可以与String构造函数做同样事情的工具:
String st = "\"";
char ch = st.charAt(0);
Run Code Online (Sandbox Code Playgroud)
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 : \;
Run Code Online (Sandbox Code Playgroud)
但是在Eclipse中,输出完全不同于相同的参数,尤其是"非常混乱".