2011-09-28 105 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