java - 使用 java 和用户输入编写命令

标签 java command java.util.scanner

我正在制作一个电影商店程序,但我不知道如何制作诸如购买电影或信息电影之类的命令

import java.util.Scanner;
import java.util.concurrent.TimeUnit;
import java.util.ArrayList;

public class Pricing {

     // TEST
static double Cost;
String DieHard_Name;
String DieHard_Info;
static double DieHard_Price = 6.99;
static boolean DieHard_incart;
// Test

static Scanner scan = new Scanner(System.in);

public static void main(String[] args) throws InterruptedException{



    // Start of the program
            ArrayList<String> Genre = new ArrayList<String>();
            Genre.add("Action");
            Genre.add("Horror");
            Genre.add("Documentary");

            System.out.println("Welcome to the movie store Please type the genre of movie you would like to"
                    + " browse");  
            System.out.println("Type 'Help' in the console for assistance");
            Genre.forEach(System.out::println); 



    // ArrayList for the action movies
    ArrayList<String> Action = new ArrayList<String>();
    Action.add("Die Hard");
    Action.add("Top Gun");
    Action.add("Whitehouse Down");
    Action.add("The Gentlemen");
    Action.add("Mission impossible");
    Action.add("John Wick");
    Action.add("Atomic Blonde");
    Action.add("Inception");
    Action.add("The Matrix");
    Action.add("Speed");

    // ArrayList for the Horror movies
    ArrayList<String> Horror = new ArrayList<String>();
    Horror.add("Us");
    Horror.add("It Chapter 2");
    Horror.add("Get Out");
    Horror.add("The Interior");
    Horror.add("It follows");
    Horror.add("The Ring");
    Horror.add("The Shinning");
    Horror.add("Scream");
    Horror.add("Alien");
    Horror.add("Nightmare on Elm Street");

    // ArrayList for Documentaries
    ArrayList<String> Documentary = new ArrayList<String>();
    Documentary.add("Free Solo");
    Documentary.add("13th");
    Documentary.add("Fyre");
    Documentary.add("Honeyland");
    Documentary.add("Strong Island");
    Documentary.add("Abducted in plain sight");
    Documentary.add("Man on Wire");
    Documentary.add("How to Survive a Plague");

    ArrayList<String> Help_pls = new ArrayList<String>();
    Help_pls.add("");



     // If the input doesn't match one of the options a "please try again message appears"

     String chooseGenre;
     Boolean isProgramRunning = true;

     while (isProgramRunning) {

         chooseGenre = scan.next();
        /* System.out.println("Loading."); 
         TimeUnit.SECONDS.sleep(1);
         System.out.println("Loading.."); 
         TimeUnit.SECONDS.sleep(1);
         System.out.println("Loading..."); 
         TimeUnit.SECONDS.sleep(1); */

         switch(chooseGenre) {
              case "Horror" :
                 System.out.println("you chose: Horror!"); 
                 Horror.forEach(System.out::println);
                 break;
              case "Action" :
                  System.out.println("you chose: Action!");
                  Action.forEach(System.out::println);
                 break;
              case "Documentary" :
                  System.out.println("you chose: Documentary!");
                  Documentary.forEach(System.out::println);
                  break;
              case "Help" :
                  System.out.println("You chose: Help");
                  Help_pls.forEach(System.out::println);

                  // THIS HERE
              case "Buy Die hard " :
                  if (DieHard_incart = false) {
                     System.out.println("Selected buy: Die hard "); 
                     Cost = 0 + DieHard_Price;
                     DieHard_incart = true ;
                  } else {
                      System.out.println("This movie is allready in your cart");
                  }
                     break;




              case "Exit":
                  isProgramRunning = false;
                  System.out.println("Program terminated");
                  break;
              default :
                 System.out.println("Please enter a Movie genre or usable command");
                 break;
           }

     }//ndloop

} //end 

  }

当我输入 Buy Die Hard 时,它给了我三次“请输入电影类型或可用命令” 我不知道一直使用 switch 语句是否有效,或者是否会使我的程序运行缓慢

有没有办法可以解决这个问题,或者有更简单的方法来实现这个问题?

最佳答案

如果您想解析包含空格的文本,则必须将

chooseGenre = scan.next() 更改为 chooseGenre = scan.nextLine()

“请输入电影类型或可用命令”出现 3 次,因为您发送到应用程序的命令包含由 2 个空格分隔的 3 个单词。

关于java - 使用 java 和用户输入编写命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62053064/

相关文章:

java - 如何使用扫描仪读取回车符作为字符串的一部分?

c# - 使用 WPF 验证命令

c# - 更新表时必须声明标量变量@

java - java中的文件输入流-计算数据

java - JVM 在并行处理方面有多好?我什么时候应该创建自己的线程和可运行对象?为什么线程会干扰?

java - 在 java 中以编程方式生成 XSD

java - 为什么它执行两个 Action ?

java - 如何使用 Apache POI 在 Word 中重新启动编号?

C++ IBM i Access API 运行远程命令并获取输出

java - fileInputStream 和 Scanner 类之间差异背后的逻辑