как использовать Java StringTokenizer для следующей строкиКак использовать java stringtokenizer?
| feild1 | field2 || Field4 | ...
я хочу Java взять заготовку как поле тоже, но StringTokenizer пропускает его.
Любая опция для его получения.
как использовать Java StringTokenizer для следующей строкиКак использовать java stringtokenizer?
| feild1 | field2 || Field4 | ...
я хочу Java взять заготовку как поле тоже, но StringTokenizer пропускает его.
Любая опция для его получения.
Вам действительно нужен токенизатор? Почему бы не разделить строку на массив? Таким образом, у вас тоже будут пустые поля.
String fields = "bla1|bla2||bla3|bla4|||bla5";
String[] field = fields.split("\\|"); // escape the | because split() needs a regexp
Обратите внимание, что это будет игнорировать конечные пустые поля (т. Е. «Bla5 ||» возвращает 'new String [] {" bla5 "}' –
Thanx это сработало. :) – someguy
@Aaron Digulla: это можно исправить. Используйте .split ("\\ |", -1), чтобы получить завершающие пустые поля –
Без StringTokenizer использования String.split():
for (String a : "|1|2||3|".split("\\|")) {
System.out.println("t="+a);
}
Обновление: забыл выпускаемый (как обычно). +1 голос.
Вам нужно будет избежать '|'. –
Как насчет java.util.Scanner? Гораздо более мощным, чем StringTokenizer, введенный в Java 5 и по большей части неизвестна или недооцененный:
Scanner scanner = new Scanner("1|2|3|||6|");
scanner.useDelimiter("\\|");
while (scanner.hasNext()) {
System.out.println(scanner.next());
}
EDIT: Он может даже разобрать Интс (и другие типы) непосредственно, как это:
Scanner scanner = new Scanner("1|2|3|||6|");
scanner.useDelimiter("\\|");
while (scanner.hasNextInt()) {
int x = scanner.nextInt();
System.out.println(x);
}
Теперь это круто. –
Определенно неизвестно мне и недооценено. Благодарю. – pimpf0r
Год 2012, и его еще непопулярный! Никогда не знал, что это существовало! – frappuccino
Что вы используете как токен? – Geo
Я использую символ трубы | – someguy