【发布时间】:2013-09-18 23:23:24
【问题描述】:
我有一个程序允许用户将观察结果输入 CSV 文件并保存。 我希望能够读取文件并且只打印出用户搜索的观察结果。 (例如,用户输入“planet”并打印出所有包含 Planet 的行。我当前的代码打印出整个文件,而不仅仅是指定的行。我无法设置逻辑语句来执行此操作。
这是我的代码:
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();
}
我的输出目前如下所示:
请输入您要搜索的鸟类类型
乌鸦
Crows 的所有观察结果:Crow X Bergen May2015
啄木鸟 M 奥斯陆 2012 年 7 月
蜂鸟 M Kaupanger 2015 年 12 月
而我只想打印出来:
乌鸦 X 卑尔根 2015 年 5 月
【问题讨论】:
-
不应该
if(contains = true)是if(contains == true) -
糟糕,是的。我改变了它,但仍然是相同的输出。
-
或者干脆
if(contains)。 -
试过了,还是打印出同样的东西。