大家好我正在使用包含
的流标记器解析文本文件ž
Z(ze;通常在英国,有时在美国,zêd;以前, 还有,îz“zêrd)
Defn:Z,英文字母的第26个和最后一个字母,是 一个声音辅音。它取自拉丁字母Z,来自 来自希腊字母表,这是来自闪族的来源。该 最终起源可能是埃及人。在词源上,它是最多的 与s,y和j密切相关;如玻璃,釉; E. yoke,Gr。 yugum; E.热心,嫉妒。参见发音指南,§§273,274。
我的代码
public int[] getlineno(){
try {
BufferedReader in = new BufferedReader(new FileReader(url));
StreamTokenizer st = new StreamTokenizer(in);
st.eolIsSignificant(true);
Vector v=new Vector();
st.commentChar('#');
scan:
while (true) {
switch (st.nextToken()) {
case StreamTokenizer.TT_EOF:
break scan;
case StreamTokenizer.TT_WORD:
break;
case StreamTokenizer.TT_NUMBER:
break;
default:
if(st.sval==null){
System.out.println(i+" "+st.sval);
v.add(st.lineno());
}break;
}
}
int linesno[]=new int[v.size()];
for(int i=0;i<v.size();i++){
int line=Integer.parseInt(v.get(i).toString());
linesno[i]=line;
}
return linesno;
} catch (Exception ex) {
return null;
}
}
请帮助我使用streamtokenizer.class
检测空白行答案 0 :(得分:1)
有一种形式的StringTokenizer构造函数,它接受字符串,分隔符列表和一个布尔值,指示分隔符是否应作为标记返回。如果你使用这种形式的构造函数,nextToken()方法将以适当的顺序将新行字符(假设它是你的一个分隔符)返回给你的代码。你必须添加逻辑来确定哪些令牌是分隔符,哪些是“真正的”令牌。