2011-09-28 110 views
0
inputValue = "111,GOOG,20,475.0" 

StringTokenizer tempToken = new StringTokenizer(inputValue, ","); 

while(tempToken.hasMoreTokens() == true) 
{ 
    test = token.nextToken(); 
    counterTest++; 
} 

它給了我一些無效正確NULL字符標記生成空字符

我開始學習StringTokenizer的,我不知道在這一點上有什麼錯wen't我logicly認爲它的作品了,但我忘記了什麼?

+0

「這給了我一些無效正確NULL字符」請更具體:這難道不是編譯或這給你一個運行時錯誤? – megaflop

+1

適用於我(固定語法錯誤後):http://ideone.com/AGyj2 – NullUserException

+0

@daiscog給我錯誤,因爲我運行它 –

回答

2

我看到一些錯字在你的代碼中。 但是,在新代碼中不鼓勵使用StringTokenizer。從的javadoc:

的StringTokenizer是保留兼容性 原因,雖然它的使用是在新代碼氣餒的遺留類。建議 任何尋求此功能的人都使用字符串 或java.util.regex包的拆分方法。

推薦的方法是使用String#split。 喜歡的東西:

private void customSplit(String source) { 
    String[] tokens = source.split(";"); 
    for (int i = 0; i < tokens; i++) { 
     System.out.println("Token" + i + "is: " + token[i]); 
    } 
} 
2

您的代碼段正在與一些小的調整,也許你失去了一些東西簡單,因此請查看以下重寫完整的例子:

public static void main(String[] args) throws Exception { 

    String inputValue = "111,GOOG,20,475.0"; 

    StringTokenizer tempToken = new StringTokenizer(inputValue, ","); 

    int counterTest = 0; 
    while (tempToken.hasMoreTokens()) { 
     String test = tempToken.nextToken(); 
     System.out.println(test); 

     counterTest++; 
    } 

    System.out.println("-------------------"); 
    System.out.println("counterTest = " + counterTest); 
} 

輸出:

111 
GOOG 
20 
475.0 
------------------- 
counterTest = 4