Java, разбитый на ^ (карет?), Не работает, это особый символ?
В Java я пытаюсь разделить на символ ^
, но он не распознает его. Escaping \^
выдает ошибку кода.
Является ли это особым символом или мне нужно сделать что-то еще, чтобы узнать его?
String splitChr = "^";
String[] fmgStrng = aryToSplit.split(splitChr);
Ответы
Ответ 1
^
является специальным символом в Java regex - это означает "соответствовать началу" ввода.
Вам нужно будет избежать этого с помощью "\\^"
. Двойная косая черта необходима для выхода из \
, иначе компилятор Java подумает, что вы пытаетесь использовать специальную последовательность \^
в строке, аналогичную \n
для строк новой строки.
\^
не является специальной escape-последовательностью, поэтому вы получите ошибки компилятора.
Короче говоря, используйте "\\^"
.
Ответ 2
The ^ соответствует началу строки. Вам нужно сбежать от него, но в этом случае вам нужно избежать этого, чтобы анализатор регулярных выражений понимал, что означает escape-выход, поэтому:
String splitChr = "\\^";
...
должен получить то, что вы хотите.
Ответ 3
String.split()
принимает регулярное выражение. Знак ^
является специальным символом, обозначающим начало входной последовательности. Вам нужно убежать от него, чтобы заставить его работать. Вы были правы, пытаясь сбежать от него с помощью \
, но это особый символ, чтобы избежать вещей в строках Java, поэтому вам нужно избежать escape-символа с помощью другого \
. Это даст вам:
\\^
Ответ 4
используйте "\\^"
. Используйте этот пример в качестве руководства:
String aryToSplit = "word1^word2";
String splitChr = "\\^";
String[] fmgStrng = aryToSplit.split(splitChr);
System.out.println(fmgStrng[0]+","+fmgStrng[1]);
Он должен печатать "word1, word2", эффективно разбивая строку, используя "\\^"
. Первая косая черта используется для выхода из второй косой черты. Если бы не было двойной косой черты, Java считала бы ^ escape-символом, например, новой строки "\n"
Ответ 5
Ни один из вышеперечисленных ответов не имеет смысла. Вот правильное объяснение.
- Как мы все знаем, ^ не нужно экранировать в Java String.
- Как ^ специальный charectar в RegulalExpression, он ожидает, что вы перейдете в \^
- Как сделать строку \^ в java? Подобно этому String splitstr = "\ ^"
Пожалуйста, дайте мне знать, что это объяснение помогает. Пожалуйста, несите опечатки, если они есть.
Спасибо
-karuna
Ответ 6
String[] fmgStrng = aryToSplit.split("\\\^");