У меня есть программа, которая позволяет пользователю вводить наблюдения в файл CSV и сохранять их. Я хочу, чтобы иметь возможность читать файл и только распечатывать наблюдения, которые пользователь ищет. (например, типы пользователей на «планете» и все строки, содержащие планету. Мой текущий код печатает весь файл, а не только указанные строки. У меня возникли проблемы с созданием логической инструкции для этого.Распечатка строки из файла CSV, содержащего пользовательский ввод -
Вот мой код:
void findbird() throws IOException{
Scanner input = new Scanner(System.in);
System.out.println("Please enter the type of bird you wish to search for");
String bird;
bird = input.next();
System.out.println("All observations of " + bird + "s:");
BufferedReader br = new BufferedReader(new FileReader("birdobservations.txt"));
String dataRow = br.readLine();
boolean contains = bird.toLowerCase().contains(dataRow.toLowerCase());
while (dataRow != null){
String[] dataArray = dataRow.split(",");
for (String item:dataArray) {
if(contains = true){
System.out.print(item + "\t");
}else{
System.out.println("No observations of " + bird + " found!");
}
}
System.out.println();
dataRow = br.readLine();
}
br.close();
System.out.println();
menu();
}
Мой выход в настоящее время выглядит следующим образом:
Пожалуйста, введите тип птицы вы хотите найти
Crow
Все наблюдения Вороны: Crow X Берген May2015
Дятел M Oslo July2012
Hummingbird M Каупангер December2015
В то время как я только хочу, чтобы напечатать:
Crow X Bergen May2015
не должны 'если (содержит = истина)' 'быть, если (содержит == верно)' – Prateek
К сожалению, да. Я изменил это, но все тот же результат. – user2791187
Или просто 'if (contains)'. – Dukeling