Невозможно разбить строку - PullRequest
1 голос
/ 21 марта 2011

У меня есть строка

Mr praneel PIDIKITI

Когда я использую это регулярное выражение

 String[] nameParts = name.split("\\s+");

вместо того, чтобы получить три части, ятолько получая два, Mr и Praneel PIDIKITI.

Я не могу разбить вторую строку.Кто-нибудь знает, в чем может быть проблема?

Я даже использовал split(" ");.

Проблема в том, что я использовал replaceAll("\\<.*?>", " ").trim(); для преобразования html в эту строку, а затем я использую name.split("\\s+");чтобы получить значение имени.

Я думаю, что это должно быть что-то отличное от пробела (некоторый специальный символ).

Ответы [ 2 ]

3 голосов
/ 21 марта 2011

Ваш код должен работать.Я подозреваю ваш вклад.Между Praneel и PIDIKITI может быть непечатный символ барахла.Например,

    String name = "Mr praneel" + (char)1 +"PIDIKITI";
    String[] nameParts = name.split("\\s+");
    for(String s : nameParts)
        System.out.println(s);

Вы уверены, что между Praneel и PIDIKITI нет ненужных символов?

Удалите непечатаемые символы, например:

// remove non printable characters excluding white space characters
  name = name.replaceAll("[^\\p{Print}\\s]","");
0 голосов
/ 21 марта 2011

Если вы анализируете HTML, могу ли я порекомендовать JSoup ?Это хороший анализатор HTML для Java

...