如何使用Java';什么是标记器?
我使用缓冲读取器将文件的各行传递给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" "
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