2016-02-08 7 views
-5

Как использовать StringTokenizer, так что если разделители появляются последовательно несколько раз, StringTokenizer распознает пустое пространство между ними как пустую строку и печатает пустую строку?Как правильно использовать StringTokenizer

В качестве альтернативы, как я могу использовать метод String.split(), который принимает несколько символов в качестве разделителей и выполняет ту же работу?

Например Струнный "abcd;,;ef,,gh" должны быть напечатаны как:

abcd 
# empty line here 
# empty line here 
ef 
# empty line here 
gh 
+0

Можете ли вы предоставить код, который вы используете, который не работает? –

+0

@Charles Caldwell StringTokenizer tok = new StringTokenizer (s, ".,;"); while (tok.hasMoreTokens()) { stringCount ++; } – Geek

+0

Посмотрите, поможет ли этот ответ SO. Вместо этого он использует 'split', но он может по крайней мере выполнить задание. http://stackoverflow.com/questions/12395862/tokenising-a-string-containing-empty-tokens –

ответ

0

В соответствии с вашим входом

"abcd;,;ef,,gh" 

Выход:

abcd 
# empty line here 
# empty line here 
ef 
# empty line here 
gh 

Почему есть только 2 "пустая строка здесь" , когда было;;; ?

Возможно, вы можете заменить все «разделители» пробелами, tokenize , затем напечатать каждую строку с помощью foreach, а внутри цикла напечатать пробел или «пустую строку здесь»?

+0

I хотите, чтобы пустое пространство между этими символами считалось строкой. Я был в замешательстве, не зная, как использовать токенизатор и раскол. – Geek

+0

Вы можете использовать регулярное выражение, чтобы заменить все-не-буквенные символы пробелом, а затем сделать токенизатор. –