如何使用Java';什么是标记器?

如何使用Java';什么是标记器?,java,variable-assignment,stringtokenizer,Java,Variable Assignment,Stringtokenizer,我使用缓冲读取器将文件的各行传递给Java的StringTokenizer。该文件的结构如下所示: "2,0";"12345";"foo";"foo.doc" "2,4";"23456";"foo";"foo.doc";"34567";"foo7";"foo7.doc";"45678";"foo6";"foo6.doc";"56789";"foo5";"foo5.doc";"67890";"foo4";"foo4.doc" "3,0";"34567";"foo7";"foo7.doc" "

我使用缓冲读取器将文件的各行传递给Java的
StringTokenizer
。该文件的结构如下所示:

"2,0";"12345";"foo";"foo.doc"
"2,4";"23456";"foo";"foo.doc";"34567";"foo7";"foo7.doc";"45678";"foo6";"foo6.doc";"56789";"foo5";"foo5.doc";"67890";"foo4";"foo4.doc"   
"3,0";"34567";"foo7";"foo7.doc"
"3,0";"45678";"foo6";"foo6.doc"
"3,0";"56789";"foo5";"foo5.doc"
"3,0";"67890";"foo4";"foo4.doc"
这是我目前使用的代码

我需要能够将字符串中的每个标记分配给一个变量,以进行额外的操作。但是,如果我在
while
循环中分配这些变量,迭代将覆盖我的变量,并且它们都将返回相同的值

我正试图找到一种方法来做到以下几点:

String token01 = strTok.tokenNumber(0);
String token02 = strTok.tokenNumber(1);
String token03 = strTok.tokenNumber(2);
String token04 = strTok.tokenNumber(3);
etc.
但是在字符串标记器文档中找不到任何允许这样做的方法。我当然可以将每一行写入一个由
thisLineOfTokens[]
组成的字符串数组,并使用for循环来创建
String tokenN=thisLineOfTokens[n]
,但是有没有更直接的方法来访问特定的令牌呢


我不知道从字符串中引用特定标记的最佳方法。

您可以使用
string.split
而不是
StringTokenizer

String[] split = scrubbedInput.split(";");

split[2]; //index=2
信息来源:

建议寻求此功能的任何人改用String的split方法或java.util.regex包

因此,您可以使用以下内容:

String testLine = "your;test;data;"

String[] result = testLine.split(";");
for (int x=0; x<result.length; x++){
    System.out.println(result[x]);
}

永远不要使用
==
进行对象比较,使用
.equals()
真数据,真数据…但我刚刚敲出了一些伪代码&将在我的示例中阐明这一点。这个答案是正确的。事实上@dwwilson66您使用StringTokenizer的方式是错误的。它就像在迭代器中一样,循环遍历它并获取它们的值。您特别需要的是.split(),您可以在其中提取特定索引处的值。另外,在Javadoc中,他们说使用.split()而不是标记器。
String testLine = "your;test;data;"

String[] result = testLine.split(";");
for (int x=0; x<result.length; x++){
    System.out.println(result[x]);
}
your
test
data