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

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

Это специальный персонаж или мне нужно сделать что-то еще, чтобы он узнал его?

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

Ответы на вопрос(6)

String.split() принимает регулярное выражение^ Знак - это специальный символ, обозначающий начало входной последовательности. Вы должны избежать этого, чтобы заставить это работать. Вы были правы, пытаясь избежать этого с\ но это специальный символ для экранирования вещей в строках Java, поэтому вам нужно экранировать символ экранирования другим\, Это даст вам:

\\^

использование"\\^", Используйте этот пример в качестве руководства:

    String aryToSplit = "word1^word2";
    String splitChr = "\\^";
    String[] fmgStrng = aryToSplit.split(splitChr); 
    System.out.println(fmgStrng[0]+","+fmgStrng[1]);

Он должен напечатать «word1, word2», эффективно разделив строку, используя"\\^", Первая косая черта используется, чтобы избежать второй косой черты. Если бы не было двойной косой черты, Java подумал бы, что ^ - это экранирующий символ, такой как перевод строки."\n"

 art vanderlay22 мая 2012 г., 05:14
thx @Basilio German оценил пример кода, хотел бы я дать два правильных ответа

^ Соответствует началу строки. Вам нужно экранировать его, но в этом случае вам нужно экранировать его, чтобы синтаксический анализатор регулярных выражений понимал, что означает экранирование, поэтому:

String splitChr = "\\^";
...

должен получить то, что вы хотите.

Ни один из приведенных выше ответов не имеет смысла. Вот правильное объяснение.

As we all know, ^ doesn't need to be escaped in Java String. As ^ is special charectar in RegulalExpression , it expects you to pass in \^ How do we make string \^ in java? Like this String splitstr = "\^"

Пожалуйста, дайте мне знать, это объяснение помогает. Пожалуйста, имейте опечатки, если таковые имеются.

Спасибо -karuna

 27 февр. 2013 г., 20:01
Коррекция == & GT; Как эта строка splitstr = & quot; \\ ^ & quot;
 27 февр. 2013 г., 20:16
Вместо комментария отредактируйте свой ответ вместо
Решение Вопроса

^ является специальным символом в регулярном выражении Java - это означает "соответствовать началу" входа.

Вам нужно будет избежать этого с"\\^", Двойная косая черта необходима, чтобы избежать\в противном случае компилятор Java будет думать, что вы пытаетесь использовать специальный\^ последовательность в строке, похожая на\n для новых строк.

\^ Это не специальная escape-последовательность, поэтому вы получите ошибки компилятора.

Короче говоря, используйте"\\^".

 art vanderlay22 мая 2012 г., 05:13
Бинго! четкое объяснение, спасибо @birryree
 22 мая 2012 г., 04:46
Приятно - +1 от меня.
S,tring[] fmgStrng = aryToSplit.split("\\\^"); 

Ваш ответ на вопрос