如何在java中使用streamtokenizer检测空白行

时间:2013-07-26 04:20:27

标签: java

大家好我正在使用包含

的流标记器解析文本文件

ž

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

检测空白行

1 个答案:

答案 0 :(得分:1)

有一种形式的StringTokenizer构造函数,它接受字符串,分隔符列表和一个布尔值,指示分隔符是否应作为标记返回。如果你使用这种形式的构造函数,nextToken()方法将以适当的顺序将新行字符(假设它是你的一个分隔符)返回给你的代码。你必须添加逻辑来确定哪些令牌是分隔符,哪些是“真正的”令牌。