2

以下は私の現在の機能です。lineToCompare が見つかった場合は正常に動作し、true を返します。

public static int checkrank(String lineToCompare){
    try{
        // Open the file that is the first 
        // command line parameter
        FileInputStream fstream = new FileInputStream("ranks.txt");

        // Get the object of DataInputStream
        DataInputStream in = new DataInputStream(fstream);
        BufferedReader br = new BufferedReader(new InputStreamReader(in));

        String strLine;
        //Read File Line By Line

        while ((strLine = br.readLine()) != null)   {
        //Compare the line with the line to compare (string)
        if(strLine.trim().compareTo(lineToCompare) == 0)
          return true;
        }

        //Close the input stream
        in.close();
    }catch (Exception e){//Catch exception if any
        System.err.println("Error: " + e.getMessage());
    }

    return false;

}

ただし、 lineToCompare が見つかった後に行を取得する必要があります。

テキスト ファイルの例を次に示します。

xXPwnageLolXx
1
SomethingTest
0
AnotherSomething
3

テキスト行 (lineToCompare) を見つけて、見つかった行の後に数値を返す必要があります。どうすればいいですか?

4

1 に答える 1

5
while ((strLine = br.readLine()) != null)   {
    //Compare the line with the line to compare (string)
    if(strLine.trim().compareTo(lineToCompare) == 0) {
      //I found it!  Read the next line...
      final String lineAfter = br.readLine();
      return Integer.parseInt(lineAfter);    
    }
}

このスニペットを編集して、Dowards の提案を含めました。ローカル変数は不要です。読みやすくするために残しています。

于 2012-05-14T04:56:38.280 に答える