Когда у меня есть пространство во входных данных, оно дублируется

Сначала я хочу, когда они дают неправильный ввод, пожалуйста, что неправильный ввод написал там логический ввод.

когда я нажимаю пробел, для каждого пространства он дублирует замену.

как

Введите скорость доставки.

Если вы хотите просмотреть все параметры скорости доставки, введите «параметры».

24 часа

Неправильный тип, пожалуйста, прочитайте варианты и будьте осторожны с заглавными буквами.

Введите скорость доставки.

Если вы хотите просмотреть все параметры скорости доставки, введите «параметры».

Неправильный тип, пожалуйста, прочитайте варианты и будьте осторожны с заглавными буквами.

Введите скорость доставки.

Если вы хотите просмотреть все параметры скорости доставки, введите «параметры».

123 123 123

Неправильный тип, пожалуйста, прочитайте варианты и будьте осторожны с заглавными буквами.

Введите скорость доставки.

Если вы хотите просмотреть все параметры скорости доставки, введите «параметры».

Неправильный тип, пожалуйста, прочитайте варианты и будьте осторожны с заглавными буквами.

Введите скорость доставки.

Если вы хотите просмотреть все параметры скорости доставки, введите «параметры».

Неправильный тип, пожалуйста, прочитайте варианты и будьте осторожны с заглавными буквами.

Введите скорость доставки.

Если вы хотите просмотреть все параметры скорости доставки, введите «параметры».

Вот мой код.

Пожалуйста, помогите мне .

   import java.util.InputMismatchException;
    import java.util.Scanner;
    public class deneme123 {
       public static void main(String[] args){
          String opt=null;
          Scanner input=new Scanner(System.in);
           double cost= 0.0;
          while (true) {
               while (true) {
                   System.out.println("Please enter a delivery speed.nIf you want to see all options of delivery speed, enter 'options'.");
                  try {
                      opt = input.next();
                     break;
                 }
                 catch (InputMismatchException e) {
                     System.out.println("Wrong type, pls try again!");
                      input.nextLine();
                  }
              }
              if (opt.equals("fast")) {
                  cost = cost + 34.9;
                 System.out.println("Total is updated to " + cost + "$");
                 break;
              }
              else if (opt.equals("average")) {
                  cost = cost + 17.5;
                  System.out.println("Total is updated to " + cost + "$");
                  break;
              }
              else if (opt.equals("standart")) {
                  cost = cost + 5.5;
                  System.out.println("Total is updated to " + cost + "$");
                 break;
                }
                else if (opt.equals("VIP")||opt.equals("vip")||opt.equals("Vip")) {
                   cost = cost + 50;
                  System.out.println("Total is updated to " + cost + "$");
                  break;
               }
                else if (opt.equals("options")) {
                  System.out.println("* For VIP delivery speed enter 'VIP'. (costs 50 $) " +
                           "n* For fast delivery speed enter 'fast'. (costs 34.9 $) " +
                           "n* For average delivery speed enter 'average' (costs 17.5 $)" +
                           "n* For standart delivey speed enter 'standart' (costs 5.5 $)");
               }
              else {
                   System.out.println("Wrong type, please read options and be careful with the capital letters.");
               }
          }
     }
    }

1 ответ

  1. Я немного изменил ваш код. Под кодом я показал выходные данные, которые я получаю при его запуске.

    package deneme23;
    import java.util.InputMismatchException;
        import java.util.Scanner;
    /**
     *
     * @author davec
     */
    public class Deneme23 {
    
    
    
           public static void main(String[] args){
              String [] opts=null;
              Scanner input=new Scanner(System.in);
               double cost= 0.0;
               OUTER:
               while (true) {
                   while (true) {
                       System.out.println("Please enter a delivery speed.\nIf you want to see all options of delivery speed, enter 'options'.");
                       try {
                           String line = input.nextLine();
                           opts = line.split("\s");
                           break;
                       }
                       catch (InputMismatchException e) {
                           System.out.println("Wrong type, pls try again!");
                           input.nextLine();
                       }
                   }switch (opts[0]) {
                       case "fast":
                           cost = cost + 34.9;
                           System.out.println("Total is updated to " + cost + "$");
                           break OUTER;
                       case "average":
                           cost = cost + 17.5;
                           System.out.println("Total is updated to " + cost + "$");
                           break OUTER;
                       case "standart":
                           cost = cost + 5.5;
                           System.out.println("Total is updated to " + cost + "$");
                           break OUTER;
                       case "VIP":
                       case "vip":
                       case "Vip":
                           cost = cost + 50;
                           System.out.println("Total is updated to " + cost + "$");
                           break OUTER;
                       case "options":
                           System.out.println("* For VIP delivery speed enter 'VIP'. (costs 50 $) " +
                                   "\n* For fast delivery speed enter 'fast'. (costs 34.9 $) " +
                                   "\n* For average delivery speed enter 'average' (costs 17.5 $)" +
                                   "\n* For standart delivey speed enter 'standart' (costs 5.5 $)");
                           break;
                       default:
                           System.out.println("Wrong type, please read options and be careful with the capital letters.");
                           break;
                   }
               }
         }
        } 
    

    Вот выходные данные, которые я получаю, когда я запускаю его:

    Please enter a delivery speed.
    If you want to see all options of delivery speed, enter 'options'.
    24 hours
    Wrong type, please read options and be careful with the capital letters.
    Please enter a delivery speed.
    If you want to see all options of delivery speed, enter 'options'.
    options
    * For VIP delivery speed enter 'VIP'. (costs 50 $) 
    * For fast delivery speed enter 'fast'. (costs 34.9 $) 
    * For average delivery speed enter 'average' (costs 17.5 $)
    * For standart delivey speed enter 'standart' (costs 5.5 $)
    Please enter a delivery speed.
    If you want to see all options of delivery speed, enter 'options'.
    fast
    Total is updated to 34.9$