Я ищу способ преобразования строки, содержащей escape-последовательность символов, в представляемый символ.
Так, например, я хочу проанализировать строку \"
(которая состоит из двух символов), обратный слеш и двойные кавычки) в символ "
.Итак, массив символов в один символ.
Итак, что-то, что может сделать что-то подобное и наоборот:
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 или другом нет ничегоэто может дать мне хороший (возможно, нативный) код для этого, потому что я чувствую, что приведенный выше код может быть неполным и не анализировать каждый проблемный (escape-?) символ, потому что я - нуб.Мне нужен инструмент, который может делать то же самое, что и конструктор String:
String st = "\"";
char ch = st.charAt(0);
ch output: ";
Спасибо, что прочитали это, извинитеесли не ясно, я буду регулярно проверять и исправлять, если будет предложено.
PS :
Когда я запускаю вышеуказанный код:
java -classpath ~ / workspace / MacroRecorder / bin / test.Test \\ n \\ t \\ f \\ r \\ b \\\ '\\\ "\\\\;
...it output
\n : 10 :
;
\t : 9 : ;
\f : 12 :
;
;r : 13 :
\b : 8 :;
\' : 39 : ';
\" : 34 : ";
\\ : 92 : \;
Но в Eclipse выходные данные совершенно разные с теми же параметрами, особенно "очень грязный".