Я ищу способ преобразовать строку, содержащую escape-последовательность символа, в представленный символ.
] Так, например, я хочу проанализировать строку \ "
(которая имеет два символа, обратную косую черту и двойные кавычки) в 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) + ";");
}
}
}
Я не мог поверить, что в java.lang или другом нет ничего, что могло бы предоставить мне хороший (возможно, собственный) код для этого, потому что Я считаю, что приведенный выше код может быть неполным и не анализировать каждый проблемный (ускользающий?) Символ, потому что я новичок. Мне нужен инструмент, который может делать то же самое, что и конструктор String:
String st = "\"";
char ch = st.charAt(0);
ch output: ";
Спасибо, что прочитали это, извините, если не ясно, я буду регулярно проверять и исправлять, если спросят.
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 вывод совершенно другой с теми же параметрами, особенно" очень беспорядочно ".