StringTokenizer与.txt文件在行中没有值时

时间:2013-09-23 04:47:26

标签: java stringtokenizer

我有一个编程功课要做,我们的老师要我们使用StringTokenizer。 我们在一行上有一个matricule \t name \t first name \t Grade1 \t Grade2 \t Grade3 \t Grade 4的txt文件。我希望我的代码返回" 0"当StringTokenizer没有任何东西时命中一个标记。我不允许使用拆分功能。

这是一个日期的例子:

00000005    manque tp1  donne 90        40  100 100

程序

String line;
        while ((ligne = reader.readLine()) != null) {
            StringTokenizer var = new StringTokenizer(ligne, "\t");
            String matricule = var.nextToken();
            String nom = var.nextToken();
            String prenom = var.nextToken();
            double noteTP1 = Double.parseDouble(var.nextToken());
            double noteTP2 = Double.parseDouble(var.nextToken());
            double noteIntra = Double.parseDouble(var.nextToken());
            double noteFinal = Double.parseDouble(var.nextToken());

1 个答案:

答案 0 :(得分:0)

您是否尝试过StringTokenizer.countTokens()

        String line;
        while ((ligne = reader.readLine()) != null) {
            StringTokenizer var = new StringTokenizer(ligne, "\t");
            if(var.countTokens() == 0) {
                //return "0"; or continue;
            String matricule = var.nextToken();
            String nom = var.nextToken();
            String prenom = var.nextToken();
            double noteTP1 = Double.parseDouble(var.nextToken());
            double noteTP2 = Double.parseDouble(var.nextToken());
            double noteIntra = Double.parseDouble(var.nextToken());
            double noteFinal = Double.parseDouble(var.nextToken());