1

我可以请你指导我如何完成这个问题吗?我需要将 inputWord 与 .txt 文件中的字符串进行比较,如果找到,则返回整行,如果没有,则显示“找不到单词”。

例子:

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)逐行读取文件。

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 回答