Подтвердить что ты не робот

Java, разбитый на ^ (карет?), Не работает, это особый символ?

В Java я пытаюсь разделить на символ ^, но он не распознает его. Escaping \^ выдает ошибку кода.

Является ли это особым символом или мне нужно сделать что-то еще, чтобы узнать его?

String splitChr = "^";
String[] fmgStrng = aryToSplit.split(splitChr); 
4b9b3361

Ответ 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("\\\^");