2012-01-05 180 views
7

我正在寻找一种方法将包含字符转义序列的字符串转换为表示字符。因此,例如,我想将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) + ";"); 
     } 
    } 
} 

我简直不敢相信有什么java.lang中或其他能够给我提供良好的(也许本机)代码,是因为我觉得上面的代码可能不完整,不能解析每一个有问题的(可以逃避的)角色,因为我是一个noob。 我想要一个工具,它可以做同样的事情String构造:

String st = "\""; 
char ch = st.charAt(0); 

声道输出:“

感谢您读这篇文章,我很抱歉,如果不清楚我会。定期和正确的检查,如果问

PS

当我运行上面的代码:

的java -classpath〜/工作区/宏录制/ bin中/ test.Test \\Ñ\\吨\\˚F\\ř\\ b \\\” \\\” \\\\;

...它输出

\n : 10 : 
; 
\t : 9 : ; 
\f : 12 : 
      ; 
;r : 13 : 
\b : 8 :; 
\' : 39 : '; 
\" : 34 : "; 
\\ : 92 : \; 

但在Eclipse中,输出具有相同的参数完全不同,特别是“很凌乱。

+0

可能重复[如何转换/解析从字符串到char在java?](http://stackoverflow.com/questions/7853502/how-to-convert-parse-从串-to-char-in-java) – 2012-01-05 00:17:56

+0

我该如何向该问题添加问题?每一个答案都是一样的,而不是回答这个问题......我觉得这是更具体的,虽然他是真的想和我一样。我也会尝试编辑他的问题。 – sinekonata 2012-01-05 00:21:02

+0

你不能。你觉得那里的答案对你没有帮助吗?当然好像。 – 2012-01-05 00:22:04

回答

13

阿帕奇百科全书救援与StringEscapeUtils,你想unescapeJava方法我认为:http://commons.apache.org/lang/api-2.4/org/apache/commons/lang/StringEscapeUtils.html#unescapeJava(java.lang.String)

+0

我认为这与我想要的完全相反,但这是一个很好的开始,因为我想要一个2路util。 – sinekonata 2012-01-05 00:31:52

+0

尝试在同一个类上使用escapeJava方法!它具有两种方法,还有其他方法(如Javascript, HTML等),如果你想要不同类型的逃跑 – 2012-01-05 00:37:22

+0

哦,对不起,我没有看到有两个逃脱和unescape 多亏了我寻找这样一类的小时 – sinekonata 2012-01-05 00:38:24

相关问题