2013-06-17 1 views
1

У меня есть строка:StringTokenizer и Струнный раскол - раскол на особый характер

2 | домашняя электроника | | 0 | 0 | | | | | 0 | |

Я хочу разделить все токены, разделенные | в приведенной выше строке.

Я попытался подделать его StringTokenizer, но он не рассматривает пространство как токен.

Кроме того, я пробовал split("|"), но он дает каждому символу указанной строки как элементы в возвращаемом массиве строк.

Что мне делать?

+0

«StringTokenizer является наследием класс, который сохраняется в целях совместимости, хотя его использование не рекомендуется в новом коде. Рекомендуется, чтобы кто-то ищет эту функцию используют метод разделения на строки или пакет java.util.regex. "и не принимайте ответ, который помог вам ... – jwenting

ответ

8

Попробуйте

string.split("\\|"); 

| это особый характер и должны быть espaced с экранирующим символом \. В Java \ написан как \\.

Это потому, что String#split() принимает регулярное выражение в качестве параметра.

В течение регулярных выражений специальных символов, как ., |, ( и т.д., должны быть экранированы. В противном случае Java будет думать, что вы на самом деле используете специальный символ (например, | означает ИЛИ).

+1

Да, его работа .... Спасибо человеку – Anup

+1

Другим способом будет' string.split ("[|]") '. – ach

0

Try Сканер вместо StringTokenizer

Scanner sc = new Scanner(str); 
    sc.useDelimiter("\\|"); 
    while(sc.hasNext()) { 
     String e = sc.next(); 
    }