【问题标题】:Java splitting read lines into strings and then using themJava 将读取的行拆分为字符串,然后使用它们
【发布时间】:2013-03-16 11:16:37
【问题描述】:

所以我有代码

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 语句,这只是一个示例。

我该怎么做呢? (我浏览了互联网并没有发现太多用处)

【问题讨论】:

  • readLog.txt 中有什么内容?
  • 我目前还没有太多内容,但例如我会输入“你叫什么名字 - 我叫鲍勃”

标签: java string if-statement io


【解决方案1】:

如果你的格式是:

一个问题 - 一个答案,

你可以这样做:

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

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

【讨论】:

  • 好的,那很好,但我如何得到它,所以它一次只读取一行,因为目前它读出了文本文件中的所有内容?
【解决方案2】:

你可以使用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() 删除问题和答案周围的前导和尾随空格,然后再进行比较。

【讨论】:

    【解决方案3】:

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

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

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

    【讨论】:

      【解决方案4】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多