1

この問題をどのように達成できるかを教えていただけますか?inputWordを.txtファイル内の文字列と比較する必要があります。見つかった場合は行全体を返しますが、見つからない場合は「wordnotfound」と表示します。

例:

inputWord: abacus

Text file content:
abaca - n. large herbaceous Asian plant of the banana family.
aback - adv. archaic towards or situated to the rear.
abacus - n. a frame with rows of wires or grooves along which beads are slid, used for calculating.
...
so on

Returns: abacus with its definition

私がやろうとしているのは、inputWordを「-」(区切り文字としてのハイフン)の前の単語と比較することです。一致しない場合は、次の行に移動します。それらが一致する場合は、行全体をコピーします。

「宿題をする」ように言われているようには見えないことを願っていますが、さまざまなフォーラムやサイトでチュートリアルを試しました。私もJavaのドキュメントを読んでいますが、これを実現するためにそれらをまとめることはできません。

前もって感謝します!

アップデート:

これが私の現在のコードです:

if(enhancedStem.startsWith("a"))
                {
                    InputStream inputStream = getResources().openRawResource(R.raw.definitiona); 
                    try {
                        BufferedReader in = new BufferedReader(new InputStreamReader(inputStream));
                        String s = in.readLine();
                        String delimiter = " - ";
                        String del[];
                        while(s != null)
                        {
                            s = in.readLine();
                            del = s.split(delimiter);
                            if (enhancedStem.equals(del[0]))
                            {
                                in.close();
                                databaseOutput.setText(s);
                                break;
                            }
                        }
                        in.close();
                        }
                    catch (FileNotFoundException e) {
                        databaseOutput.setText("" + e);
                    }
                    catch (IOException e1) {
                        databaseOutput.setText("" + e1);
                    }
                }

どうもありがとう!これが私が思いついたもので、入力の定義を正しく返しますが、問題は、テキストファイルに見つからない単語を入力すると、アプリがクラッシュすることです。キャッチフレーズが機能していないようです。どうすればそれをトラップできるか考えていますか?Logcatは、4342行目でNullPointerExcepetionと言っています。

s = in.readLine();
4

2 に答える 2

2

テキストファイルの各行の形式が統一されていると仮定します。これは、次の方法で実行できます。

1)ファイルを1行ずつ読み取ります。

2)区切り文字に基づいて各行を分割し、分割された文字列トークンを一時文字列配列に収集します。

3)一時トークン配列の最初のエントリは、「-」記号の前の単語になります。

4)一時配列の最初のエントリを検索文字列と比較し、一致する場合は行全体を返します。

これを実現するために、次のコードを関数に含めることができます。

String delimiter = "-";
String[] temp;
String searchString = "abacus";

BufferedReader in = new BufferedReader(new FileReader(file));

while (in.readLine() != null) {
    String s = in.readLine();

    temp = s.split(delimiter);

    if(searchString.equals(temp[0])) {
        in.close();
        return s;
    }
}

in.close();
return ("Word not found");

お役に立てれば。

于 2013-02-26T03:33:34.800 に答える
0

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

myreader = new BufferedReader(new FileReader(file));
String text = "MyInput Word";

while(!((text.equals(reader.readLine())).equals("0")));
于 2013-02-26T03:17:18.130 に答える