循环遍历文本文件以使用 strinkTokenizer 查找字符串



我正在尝试循环访问一个文本文件,根据我的逻辑,它应该循环,而行不为空,然后在该循环内的另一个while loop中,它应该循环穿过该行,而变量不等于我的命令行参数之一,然后它应该获取该行的第一个标记并将其添加到该变量中。但是每次运行代码时,我都没有收到这样的元素异常,我不明白为什么?

try {
        FileReader fr = new FileReader(file);
        BufferedReader br = new BufferedReader(fr);
        String line = br.readLine();
        String id = new String();
        StringTokenizer st = new StringTokenizer(line, ",");
        while(line != null){
            while(!id.equals(args[0])){
                line = br.readLine();
                id = st.nextToken();
            }
        }
    } catch (FileNotFoundException e) {
        System.out.println("file not found");
    } catch (IOException e) {
        System.out.println("not a string");
    }

该文件如下所示:

118行: 118, S, M, P

2号线: 111, S, M, C

nextToken()

NoSuchElementException--如果中没有更多标记,则会抛出此异常 此分词器的字符串

在此代码

while(!id.equals(args[0])){
                id = st.nextToken();
            }
您的

循环将继续,直到您的 while 条件( while(!id.equals(args[0])) ( 失败。因此,请在 while 条件之前将它们打印在控制台上,id检查您的args[0]

稍微修改一下代码

 String line ="";
        String id = new String();
    while((line = br.readLine())!= null){
     StringTokenizer st = new StringTokenizer(line, ",");
        while(!id.equals(args[0])){
            id = st.nextToken();
        }
    }

您的文件在,后包含 .. 一个空格118, s, m, p所以我想您的 tockenizer 字符串应该", "

相关内容

  • 没有找到相关文章

最新更新