-1

入力テキストフィールドにあなたの名前を入力すると、なぜ「私の名前は」と4回表示されるのですか?

public void compareQuestion(){

文字列fileName=ディレクトリ+"memoryBank.txt";

      String line = null;

    try {

        FileReader fileReader = 
            new FileReader(fileName);

        // Always wrap FileReader in BufferedReader.
        BufferedReader bufferedReader = 
            new BufferedReader(fileReader);

        while((line = bufferedReader.readLine()) != null) {
            String[] parts = line.split(" - ");
            String subject = parts[0];
            String question = parts[1];
            String answer = parts[2];
            //if(input.equals(question) && !subject.equals(currentSubject)){ currentSubject = subject; }
           // if(input.equals(question) && subject.equals(currentSubject)){ Output.append(answer); }
            if(input.contains("what is your name")) { 
                Output.append("my name is"+ newline);
            }
        }   

        bufferedReader.close();         
    }
    catch(FileNotFoundException ex) {
        System.out.println(
            "Unable to open file '" + 
            fileName + "'");                
    }
    catch(IOException ex) {
        System.out.println(
            "Error reading file '" 
            + fileName + "'");
    }
}
4

2 に答える 2

1

実行例がなければ、あなたの問題はここにあると思います...

while((line = bufferedReader.readLine()) != null) {
    String[] parts = line.split(" - ");
    String subject = parts[0];
    String question = parts[1];
    String answer = parts[2];
    //if(input.equals(question) && !subject.equals(currentSubject)){ currentSubject = subject; }
    // if(input.equals(question) && subject.equals(currentSubject)){ Output.append(answer); }
    if(input.contains("what is your name")) { 
        Output.append("my name is"+ newline);
    }
}   

基本的に、ループの実行ごとに、にテキストがJTextField input含まれている場合、テキストフィールドwhat is your nameに追加されますString "my name is"+ newline。ファイルに 4 つの質問がある場合は 4 回追加され、100 個の質問がある場合は 100 回追加されます。

于 2013-03-17T08:32:02.723 に答える
0

数時間遊んだ後、MadProgrammerの助けを借りてなんとか修正できました。修正されたコード:

ブロック引用を機能させることができなかったので、ここに画像があります:

ここに画像の説明を入力してください

于 2013-03-17T09:20:44.080 に答える