0

私はこれに数時間座っていて何も見えなかったので、間違いがどこにあるのか教えてくれる人もいるでしょう。

プログラムはif、 が txt ファイル内にあるかどうかを確認し、それを一番下に戻す必要があります。

user.home に関する 2 番目の質問 使用する"C: \ Users \ Daniel / test / Test.java"と、プログラムへのパスを設定するとプログラムが動作しなくなり、ファイルが"C :/ Users / Daniel / test / Test.java"検索され始めますが、 :(.txtuser.home

public class Main {

      public static void main(String ... args) throws Exception  {
      String usrHome = System.getProperty("user.home");
      Finder finder = new Finder(usrHome + "/Testy/Test.java");
      int nif = finder.getIfCount();
      System.out.println("Number found 'if'": " + nif);
      }
}

そしてファインダークラス:

import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;

public class Finder {
String file;
Finder(String file){
        file = this.file;
}

int getIfCount() throws FileNotFoundException{  
    int count = 0;  String tmp; String lf = "if";

    Scanner sc = new Scanner (new File("C:/Users/Daniel/Testy/Test.java"));
        while(sc.hasNext()){
            tmp = sc.next();
            System.out.println(tmp); //to check if it works correctly
            if(tmp == lf){
                count++;
            }
        }

        sc.close();

    return count;
}


}

結果は次のようになります。

「if」で見つかった数: 3

そのような要素が 3 つあるため、結果は常に 0 ですが、

4

2 に答える 2

1

結果は常に 0 です

で使うので、 2つを比較するときに使っ==Stringみてくださいequals()string

 if (tmp.equals(lf)) {
          count++;
     }
于 2013-04-15T12:27:23.543 に答える