合計99,833語を含むが、文字ごとに区切られた辞書データベースがあります。私は3922語を含むdictionaryA.txtをテストしています。
ケース1:
調べたい単語を入力すると、「そろばん」と言いましょう。バッファリングされたリーダーを使用すると、アプリに「論文が応答していません。待ってください-終了します」と表示されます。待機を選択すると、そろばんという単語とその定義が返されます。
コード:
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().replaceAll("\\s+", " ");
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);
}
ケース2:
調べたい単語を入力すると、strings.xml(文字列配列で3922語全体を転送した)を使用して「そろばん」と言います。同じことを言います。応答する前に[待機]をクリックする必要があります。
コード:
String[] wordA = getResources().getStringArray(R.array.DictionaryA);
String delimiter = " - ";
String[] del;
for (int wordActr = 0; wordActr <= wordA.length - 1; wordActr++)
{
String wordString = wordA[wordActr].toString();
del = wordString.split(delimiter);
if (enhancedStem.equals(del[0]))
{
databaseOutput.setText(wordA[wordActr]);
break;
}
else
databaseOutput.setText("Word not found!");
}
どちらが良いか教えていただけますか?テキストファイルを使い続ける必要がありますか?または、どちらも応答が遅いので、strings.xmlに転送しますか?そして、私が「応答しない」問題をどのように取り除くことができるか、あなたは何か考えがありますか?前もって感謝します!