2013-03-16 3 views
0

так у меня есть кодJava Расщепление читать строки в строки, а затем использовать их

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(); }

Я знаю, что это не так, как вы бы указали, если stat со строками это просто пример.

Как я могу это сделать? (Ив посмотрел вокруг Интернета и не нашел много использования)

+0

Что читается в readLog.txt? – BlackJoker

+0

В настоящий момент у меня нет много, но, к примеру, я бы поставил «как тебя зовут - мое имя боб» –

ответ

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

Если формат:

Вопрос - Ответ,

Вы можете сделать что-то вроде:

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

Учитывая, что тире является разделителем. Он находится в цикле, который читает каждую строку.

+0

нормально, но это нормально, но как его получить, чтобы он читал только строку за раз, потому что в настоящее время он читает все в текстовом файле? –

0

Вы можете использовать метод bufferedreader.readline() для чтения из потока, пока не найдете нужную вам линию. Получите данные и обработайте их. Вы можете использовать метод equals() для сравнения. Вы можете, наконец, разделить свою строку, используя split() и сохранить ее в массиве.

1

Итак, у вас есть вопрос «Строка» и вы хотите найти подходящий ответ в readLog.

Лучшим способом было бы разделение ваших ответов на «-». (Лучше разделитель будет «\ t», поскольку «-» также может быть частью вопроса/ответа.)

String q="question"; 
String qa="question - answer"; 
String[] split = qa.split(" - "); 
if(split[0].equals(q)){ 
    do something; 
} 
Смежные вопросы