2014-10-04 140 views
0

代碼段意味着從文本文件中提取一行文本,將其分離爲單獨的標記,並將每個標記存儲在數組的索引中。起初我認爲問題出現在文本文件中,但直接將該字符串放入編輯器中並未解決問題。StringTokenizer返回null而不是字符串

有了一個字符串,如: 「雞|無|野獸|任何| 0 | 1 | 1 |嘿雞」

帶分隔符的StringTokenizer對象|將前四個令牌返回爲適當的字符串,但對於其餘四個則返回null。

有趣的是,另一個字符串:

「豺狼|無|一般|任何| 2 | 2 | 2 |嘲諷|嘲諷」

將返回第一個五個標記爲適當的字符串,但對於其餘四個也是空的。

如果問題出在最後四個令牌上,爲什麼StringTokenizer以這種方式返回空值?

代碼:

String[] parameter = new String[10]; 
String rawTxt = "Chicken|None|Beast|Any|0|1|1|Hey Chicken!"; 
StringTokenizer t = new StringTokenizer(rawTxt, "|"); 
for (int i = 0; i < t.countTokens(); i++) { 
    parameter[i] = t.nextToken(); 
    System.out.print(parameter[i] + " "); 
} 

輸出:

雞無獸,凡

回答

0

的StringTokenizer不贊成所以應該使用字符串分割方法,它適用於你的代碼

import java.util.Arrays; 

public class MainClass { 
    public static void main(String[] args) { 
    String[] parameter = new String[10]; 
    String rawTxt = "Chicken|None|Beast|Any|0|1|1|Hey Chicken!"; 
    String[] split = rawTxt.split("\\|"); 
    System.out.println(Arrays.toString(split)); 
    } 

} 
+0

感謝指向String.split()的指針。 – 2014-10-04 13:27:04

相關問題