2014-12-11 2 views
1

Я использую класс StringToken, чтобы разметить свой вклад следующим образом:tokenizing вход с использованием сплит

StringTokenizer tokens = new StringTokenizer(input); 
n = tokens.countTokens(); 
a = tokens.nextToken() 

Однако, я обнаружил, что раскол является более эффективным, есть способ, как получить количество жетонов (вместо countTokens) и способ получить следующий токен, если я использую split?

+0

Странно, StringTokenizer должен быть в два раза быстрее/effcient см http://stackoverflow.com/questions/19677919/difference-between-using-stringtokenizer- и-string-split –

ответ

0

Вы можете сделать это:

String str = "aa,bb,cc,dd"; 
String[] token = str.split(","); 

System.out.println("Size of tokens: " + token.length); 

//Printing out all tokens 
for(int x=0; x<token.length; x++) //A few different ways to print out the token values 
    System.out.println(token[x]); 

string.split() метод вернет вам string array. Итак, теперь вы можете обрабатывать каждый элемент токена как элемент массива строк. В приведенных выше кодах токен - это просто массив String.

ВЫВОД:

Size of tokens: 4 
aa 
bb 
cc 
dd 

Является ли это то, что вы хотели?

+0

И _a способ получить следующий токен, если я использую split_. –

+0

На самом деле я не совсем понимаю, что он имел в виду под 'g et next token'. – user3437460

+0

'aa' - первый токен. 'bb' - второй токен. Следующий токен после 'bb' -' cc'. –

0

Это может быть то, что вы ищете:

String str = "A,B,C,D"; 
String[] token = str.split(","); 
ArrayList<String> tokList = new ArrayList<String>(Arrays.asList(token)); 
Iterator<String> tok = tokList.iterator(); 

while(tok.hasNext())    //Check whether next element exsit 
    System.out.print(tok.next()); //Print out the token string 1 by 1 

Программа выхода: ABCD

0

Предположим, у вас есть String abcd = "a-b-c-d"; Вы можете выполнить разделение на этом. Вы получите: String[] stringArray = abcd.split("-"); Если у вас есть StringArray, вы можете получить размер с помощью stringArray.length (и сохранить результат до int. Если вы хотите получить «следующий токен», вы можете просто перебрать массив:

for (int i = 0; i < stringArray.length; i++) { 
    String tempString = stringArray[i]; 
    //do something with the String 
} 

Это то, что вы ищете?

Смежные вопросы