Java将读取行拆分为字符串然后使用它们

时间:2013-03-16 11:16:37

标签: java string if-statement io

所以我有代码

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(“Input”==“A Question”){somethinghappends(); }

我知道不是如何用字符串设置if语句只是一个例子。

我该怎么做呢? (香港专业教育学院环顾互联网并没有找到太多用途)

4 个答案:

答案 0 :(得分:2)

如果您的格式为:

一个问题 - 答案,

您可以执行以下操作:

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

考虑破折号是分隔符。这个是在循环中读取每一行。

答案 1 :(得分: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()删除问题周围的前导和尾随空格以及答案之前的答案。

答案 2 :(得分:1)

所以你有一个问题String,想在readLog中找到合适的答案。

最好的方法是将答案分成“ - ”。 (一个更好的分隔符将是“\ t”,因为“ - ”也可以是问题/答案的一部分。)

String q="question";
String qa="question - answer";
String[] split = qa.split(" - ");
if(split[0].equals(q)){
    do something;
}

答案 3 :(得分:0)

您可以使用bufferedreader.readline()方法从流中读取,直到找到所需的行。获取数据和流程。您可以使用equals()方法进行比较。您最终可以使用split()分配字符串并将其存储在数组中。