2013-03-19 2 views
12

Помощь нужна.Regex Java String Split by Single Asterisk

line.split("*"); 

Я использовал эту строку кода, чтобы разделить строку на знак звездочки. Однако, я получил ошибку от моего компилятора. В нем говорится: «НЕПРАВИЛЬНОЕ РЕГУЛЯРНОЕ ВЫРАЖЕНИЕ: ОПАСНОСТЬ МЕТАЛОВОГО ХАРАКТЕРА» *

Как решить эту проблему? Заранее спасибо.

+3

Это обычная любезность «принять» ответ здесь, на SO. Не стесняйтесь проверить ответ, который вы считаете лучшим. – squiguy

+0

Да, я проверю лучший. :) – princepiero

ответ

24

* имеет особое значение в регулярных выражениях. Вы должны избежать этого.

line.split("\\*"); 
+0

ничего себе, это работает! благодаря! – princepiero

2

Попробуйте это заявление:

line.split("\\*"); 
+0

да, это работает. благодаря! – princepiero

2

Это потому, что вы использовали "*", то есть регулярное выражение. Если вы хотите использовать эту carácter, вам нужно ту положить что-то вроде этого:

line.split("\\*"); 
2

* является мета-символ в регулярном выражении. Он используется для сопоставления 0 или более элементов. Если вы хотите использовать * как обычный символ, а не как специальный символ (т. Е. Пропустите его поведение как метасимвол), затем добавьте escape-символы перед ним.

Например: String[] split = line.split("\\*");

Надеется, что это помогает.