0

だから私はコードを持っています

public void reply(){
    String fileName = "readLog.txt";
    String line = null;
    try {
        FileReader fileReader = 
            new FileReader(fileName);

        BufferedReader bufferedReader = 
            new BufferedReader(fileReader);

        while((line = bufferedReader.readLine()) != null) {
            Output.append(line);//output is name of textarea
        }   
        bufferedReader.close();         
    }
    catch(FileNotFoundException ex) {
        System.out.println(
            "Unable to open file '" + 
            fileName + "'");                
    }
    catch(IOException ex) {
        System.out.println(
            "Error reading file '" 
            + fileName + "'");                  
    }                   
    }

そして、テキストファイルの内容を正常に読み取りますが、1行目を読み上げたいのですが、1行目には次のようなものがあります。

質問 - 答え

そして、私はそれが正しい場所に行を配置できるようにしたいです。

if("入力" == "質問") { somethinghappends(); }

文字列を使用して if ステートメントを設定する方法ではないことはわかっていますが、これは単なる例です。

どうすればこれを行うことができますか?(ネットでいろいろ調べましたがあまり使い道がありません)

4

4 に答える 4

2

フォーマットが次の場合:

質問-答え、

あなたは次のようなことをすることができます:

String[] parts = line.split(" - ");
String question = parts[0];
String answer = parts[1];

ダッシュがセパレーターであることを考えると。これは、すべての行を読み取るループ内にあります。

于 2013-03-16T11:27:38.743 に答える
1

String.split()を使用できます:

while((line = bufferedReader.readLine()) != null) {
    String[] parts = line.split("-");

    if (parts.length >= 2 && parts[0].trim().equals(parts[1].trim())) {
        doSomethingHere();
    }
}   

また、String.trim()を使用して、質問と回答を比較する前に前後のスペースを削除します。

于 2013-03-16T11:30:47.367 に答える
1

質問文字列があり、readLog で適切な回答を見つけたいとします。

最良の方法は、「 - 」で回答を分割することです。(「 - 」も質問/回答の一部になる可能性があるため、より適切な区切り文字は「\ t」になります。)

String q="question";
String qa="question - answer";
String[] split = qa.split(" - ");
if(split[0].equals(q)){
    do something;
}
于 2013-03-16T11:32:33.907 に答える
0

このメソッドを使用してbufferedreader.readline()、目的の行が見つかるまでストリームから読み取ることができます。データを取得して処理します。equals()比較のためにこの方法を使用することができます。最後に、を使用して文字列を分割split()し、配列に格納できます。

于 2013-03-16T11:28:34.273 に答える