2014-10-04 181 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

相关问题