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