Я создал Java-файл под названием Product.java. Я также создал текстовый файл Items.txt. В основном, когда пользователь вводит слово с помощью последовательного поиска для поиска данных, которые они ищут из Items.txt. Моя основная проблема - когда я вхожу в 3, чтобы отобразить все записи или ввести x, чтобы выйти из программы, она продолжает цикл. Но я не могу решить эту проблему. Может ли кто-нибудь решить это для меня?Нажмите любую клавишу с BufferedReader
Items.txt
1000|Cream of Wheat|Normal Size|Breakfast|NTUC|5|3.00
1001|Ayam Brand|Small Size|Canned|NTUC|4|4.00
Product.java
import java.io.*;
import java.util.*;
public class Product {
public static void main(String[] args) {
ArrayList<Item> prdct = new ArrayList<Item>();
String inFile = "items.txt";
String line = "";
FileReader fr = null;
BufferedReader br = null;
StringTokenizer tokenizer;
int quantity;
String id, brandname, desc, category, supplier;
float price;
try{
fr = new FileReader(inFile);
br = new BufferedReader(fr);
line = br.readLine();
while(line!=null)
{
tokenizer = new StringTokenizer(line,"|");
id = tokenizer.nextToken();
brandname = tokenizer.nextToken();
desc = tokenizer.nextToken();
category = tokenizer.nextToken();
supplier = tokenizer.nextToken();
quantity = Integer.parseInt(tokenizer.nextToken());
price = Float.parseFloat(tokenizer.nextToken());
Item itm = new Item(id,brandname,desc,category,supplier,quantity,price);
prdct.add(itm);
line = br.readLine();
}
br.close();
}
catch(FileNotFoundException e){
System.out.println("The file " + inFile + " was not found.");
}
catch(IOException e){
System.out.println("Reading error!");
}
finally
{
if (fr!=null){
try
{
fr.close();
}
catch(IOException e)
{
System.out.println("Error closing file!");
}
}
}
String INPUT_PROMPT = "\nPlease enter 3 to display all records, 4 to insert record, 5 to remove old records " + "or enter 'x' to quit.";
System.out.println(INPUT_PROMPT);
try
{
BufferedReader reader = new BufferedReader
(new InputStreamReader (System.in));
line = reader.readLine();
while(reader != null)
{
for(int i=0; i<prdct.size(); i++)
{
if(prdct.get(i).id.contains(line) || prdct.get(i).brandname.contains(line) || prdct.get(i).desc.contains(line)
|| prdct.get(i).category.contains(line) || prdct.get(i).supplier.contains(line))
{
System.out.println(prdct.get(i));
}
System.out.println(INPUT_PROMPT);
line = reader.readLine();
}
}
while("3".equals(line))
{
for(int i=0; i<prdct.size(); i++)
{
System.out.println(prdct.get(i));
}
System.out.println(INPUT_PROMPT);
line = reader.readLine();
}
while(!line.equals("x"))
{
System.out.println(INPUT_PROMPT);
line=reader.readLine();
}
}
catch(Exception e){
System.out.println("Input Error!");
}
}
}
Является ли это действительно способ сравнения строк? –
Нет, это не так. Спасибо за исправление. Я бы предпочел, чтобы вы только что отредактировали его, вместо того, чтобы меня опротестовать. Наличие такой репутации не дает вам права проголосовать за все, что вам не нравится. Это вариант редактирования. Я просто пытался помочь, и в следующий раз я буду более осторожен, но это невостребовано. – RoaaGharra
Я не твоя мать - это не для меня, чтобы привести в порядок после тебя. То, как это работает, просто, сделайте неправильный ответ, и я сниму вас, исправьте, и я удалю downvote.Я мог бы просто молча поддержать вас и не сказал вам, какова была ваша ошибка - вы предпочли бы это? –