这可能是一个愚蠢的问题,但我很难识别 StreamTokenizer 如何分隔输入流。它是由空格和下一行分隔的吗?我也对 wordChars() 的使用感到困惑。例如:
public static int getSet(String workingDirectory, String filename, List<String> set) {
int cardinality = 0;
File file = new File(workingDirectory,filename);
try {
BufferedReader in = new BufferedReader(new FileReader(file));
StreamTokenizer text = new StreamTokenizer(in);
text.wordChars('_','_');
text.nextToken();
while (text.ttype != StreamTokenizer.TT_EOF) {
set.add(text.sval);
cardinality++;
// System.out.println(cardinality + " " + text.sval);
text.nextToken();
}
in.close();
} catch (IOException ex) {
ex.printStackTrace();
}
return cardinality;
}
如果文本文件包含这样的字符串:A_B_C D_E_F。
text.wordChars('_','_') 是否意味着只有下划线才会被视为有效单词?
在这种情况下,代币会是什么?
非常感谢。