Java StringTokenizer странное поведение - PullRequest
0 голосов
/ 16 марта 2012

Я пытаюсь извлечь из документа только строчные буквенно-цифровые символы с помощью:

String delim = "abcdefghijklmnopqrstuvwxyz0123456789";

StringTokenizer strtok = new StringTokenizer(str, delim, true);

String newstr = "";

while (strtok.hasMoreTokens()) {
    newstr = newstr + strtok.nextToken();
}

return newstr;

Обратите внимание, что документ уже только в нижнем регистре. Но по какой-то причине все знаки препинания по-прежнему возвращаются вместе с паретисом и / и т. Д.

Я думал, что использование истинного логического значения при создании токенизатора будет считать разделители токенами?

1 Ответ

3 голосов
/ 16 марта 2012

Аргумент delim является разделителем. Вы в основном просите, чтобы каждый токен был «что-то между строчными буквами». Тогда «истинный» аргумент говорит: «дайте мне эти буквы тоже по краям». Вы искали replaceAll("[^abcdefghijklmnopqrstuvwxyz0123456789]","")?

...