#java
Вопрос:
Я хотел бы получить вашу квалифицированную консультацию. Если я введу код продукта, я хотел бы проверить, есть ли код продукта в файле. Если таковые имеются, я не буду записывать их в файл, но если там кода продукта не существует, система напечатает его в файле.
Scanner input = new Scanner(System.in);
Grocery adminObject = new Grocery();
Grocery adminObject1 = new Grocery();
ArrayList<Grocery> groceryRecord = new ArrayList<Grocery>();
do {
System.out.println("1. Add Grocery Item");
System.out.println("2. Delete Grocery Item");
System.out.println("3. Update Grocery Item");
System.out.println("4. Search Grocery Item");
System.out.println("5. Bill Report");
System.out.println("6. Exit");
System.out.print("Please Enter Required Option from 1 - 6: ");
choice = input.nextInt();
System.out.println("");
switch (choice){
case 1:
do {
System.out.println("Product Number: ");
adminObject.setProductCode(input.nextInt());
input.nextLine();
System.out.println("Name of the Product: ");
adminObject.setName(input.nextLine());
System.out.println("Price: ");
adminObject.setPrice(input.nextDouble());
System.out.println("Quantity: ");
adminObject.setQuantity(input.nextDouble());
System.out.println("Tax Percent: ");
adminObject.setTax(input.nextDouble());
System.out.println("Discount Percent: ");
adminObject.setDiscount(input.nextDouble());
input.nextLine();
System.out.println("Do you want to save the file? ");
choice_1 = input.nextLine();
choice_1 =choice_1.toUpperCase();
if(choice_1.equals("YES")||choice_1.equals("Y")){
try(BufferedWriter groceryFile = new BufferedWriter(new FileWriter("grocery.txt", true)); BufferedReader reader = new BufferedReader(new FileReader("grocery.txt"))) {
String currentLine = reader.readLine();
while (currentLine != null)
{
String[] groceryDetail = currentLine.split(",");
adminObject1.setProductCode(Integer.parseInt(groceryDetail[0]));
adminObject1.setName(groceryDetail[1]);
adminObject1.setPrice(Double.parseDouble(groceryDetail[2]));
adminObject1.setQuantity(Double.parseDouble(groceryDetail[3]));
adminObject1.setTax(Double.parseDouble(groceryDetail[4]));
adminObject1.setDiscount(Double.parseDouble(groceryDetail[5]));
groceryRecord.add(new Grocery (adminObject1.getProductCode(), adminObject1.getName(), adminObject1.getPrice(), adminObject1.getQuantity(),adminObject1.getTax(),adminObject1.getDiscount()));
currentLine = reader.readLine();
}
if(adminObject1.getProductCode()==adminObject.getProductCode()){
System.out.println("Duplicate Product Code.. Please re-enter");
}
else {
groceryFile.write(adminObject.getProductCode() "," adminObject.getName() "," adminObject.getPrice() "," adminObject.getQuantity() "," adminObject.getTax() "," adminObject.getQuantity() "n");
}
Комментарии:
1. Что именно вы пытаетесь спросить? В чем проблема с вашим кодом? Пожалуйста, будьте более конкретны.
Ответ №1:
вы можете проверить, содержит ли текущая строка входной код продукта
String currentLine = reader.readLine();
if(currentLine.contains("productCode")){
}
Комментарии:
1. Он использовал
input.nextInt()
для получения кода продукта mans код продукта в целочисленном виде, а не в строке2. Спасибо @sanjeevRm за ваше сообщение. Мои переменные класса следующие: Как я могу проверить дубликат с помощью типа данных int private int Код продукта; имя частной строки; частная двойная цена, количество, налог, скидка, netAmount; После строки чтения я помещаю оператор if, но он не фиксирует дубликат. Он все равно запишет это в файл, вместо того чтобы игнорировать его.
3. можете ли вы распечатать текущую строку и проверить, содержит ли она дубликат кода продукта