Струнный токенинг в Java - PullRequest
       27

Струнный токенинг в Java

0 голосов
/ 21 декабря 2011

Мне нужно токенизировать строку, используя разделитель.

StringTokenizer может маркировать строку с заданным разделителем.Но когда в строке два последовательных разделителя, он не рассматривается как токен.

Заранее благодарим за помощь

С уважением,

Ответы [ 4 ]

3 голосов
/ 21 декабря 2011

Второй параметр конструктора объекта StringTokenizer - это просто строка, содержащая все необходимые разделители.

StringTokenizer st = new StringTokenizer(str, "@!");

В этом случае есть два разделителя: @ и !

Рассмотрим этот пример:

String s = "Hello, i am using Stack Overflow;";
System.out.println("s = " + s);
String delims = " ,;";
StringTokenizer tokens = new StringTokenizer(s, delims);
while(tokens.hasMoreTokens())
  System.out.println(tokens.nextToken());

Здесь вы получите вывод, похожий на этот, с 3 разделителями:

Hello
,

i

am

using

Stack

Overflow

;
2 голосов
/ 21 декабря 2011

Используйте метод split () файла java.lang.String и передайте ему регулярное выражение, соответствующее вашему условию с одним или несколькими разделителями.

, например, "a||b|||c||||d" можно маркировать с помощью split("\\|{2,}"); срезультирующий массив [a,b,c,d]

2 голосов
/ 21 декабря 2011

Загляните в String.split ()

Это должно сделать то, что вы ищете.

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html

1 голос
/ 21 декабря 2011
public StringTokenizer(String str,
                       String delim)

Создает токенайзер строки для указанной строки.Символы в delim argument являются разделителями для разделения токенов. Сами символы-разделители не будут рассматриваться как токены.
Так что для этого вы можете использовать ..

String.split(String delim);
...