基本上我需要通过 Category 或 Dietary 这个词的项目列表执行顺序搜索,并生成项目列表信息以下列输出格式:
数据格式:
ID|Name|Description|Category|Dietary|Quantity|Unit Price
输出:
Please enter the number:
1 to search category
2 to search dietary
3 to display all records
4 to insert record
5 to remove old records
or enter '6' to quit.
1
Please enter the number:
1 to search category
2 to search dietary
3 to display all records
4 to insert record
5 to remove old records
or enter '6' to quit.
rice
1004|Premium Fragrant Rice|Large Size|Rice|Organic|2|9.5
Please enter the number:
1 to search category
2 to search dietary
3 to display all records
4 to insert record
5 to remove old records
or enter '6' to quit.
但我的问题是当我运行程序时,我在用户菜单上输入1来搜索类别,然后它从不显示项目列表信息。但我不确定如何修复第81行的代码?
我的输出:
Please enter the number:
1 to search category
2 to search dietary
3 to display all records
4 to insert record
5 to remove old records
or enter '6' to quit.
1
Please enter the number:
1 to search category
2 to search dietary
3 to display all records
4 to insert record
5 to remove old records
or enter '6' to quit.
rice
Please enter the number:
1 to search category
2 to search dietary
3 to display all records
4 to insert record
5 to remove old records
or enter '6' to quit.
爪哇:
String INPUT_PROMPT = "\nPlease enter the number:\n" +
"1 to search category"
+ "\n2 to search dietary" + "\n3 to display all records" + "\n4 to insert record" + "\n5 to remove old records " + "\nor enter '6' to quit." +"\n";
System.out.println(INPUT_PROMPT);
try
{
BufferedReader reader = new BufferedReader
(new InputStreamReader (System.in));
line = reader.readLine();
while(!line.equals("6"))
{
switch(line)
{
//Search word for Category
case "1": <-----Line 81
int i=0;
while(i<prdct.size())
{
if(prdct.get(i).category.contains(line))
{
System.out.println(prdct.get(i));
}
i++;
}
if(i == 0)
{
System.out.println("Record not found");
}
break;
case "3":
for(int h=0; h<prdct.size(); h++)
{
System.out.println(prdct.get(h));
}
break;
}
System.out.println(INPUT_PROMPT);
line = reader.readLine();
}
}
catch(Exception e){
System.out.println("Input Error!");
}
答案 0 :(得分:0)
逐行查看下面的代码:
line = reader.readLine();
你先读了一行。
while(!line.equals("6"))
{
switch(line)
{
//Search word for Category
case "1":
然后检查您阅读的行以查看用户是否输入了&#34; 1&#34;。
int i=0;
while(i<prdct.size())
{
if(prdct.get(i).category.contains(line))
然后在列表中搜索用户输入的行。
您永远不会接受新用户输入!因此,您不是在搜索用户想要的类别,而是在搜索字符串&#34; 1&#34;。再次接受用户输入以解决此问题。只需在搜索列表之前添加另一个reader.readLine()
,如下所示:
line = reader.readLine();
int i=0;
while(i<prdct.size())
{
if(prdct.get(i).category.contains(line))