Java 我可以一次输入所有命令吗?

Java 我可以一次输入所有命令吗?,java,input,command,Java,Input,Command,我用一些方法实现了一个java程序。接下来,我创建了一个主类,它将通过输入一个单词来调用相关的方法 例如: Enter {A|B|C|D|E} to call method. A=method one B = method two...etc A<--this is the user input Enter Number:<--the first Scanner input of method A 123<--Input 1 Enter words:<-- the sec

我用一些方法实现了一个java程序。接下来,我创建了一个主类,它将通过输入一个单词来调用相关的方法

例如:

Enter {A|B|C|D|E} to call method. A=method one B = method two...etc
A<--this is the user input
Enter Number:<--the first Scanner input of method A
123<--Input 1
Enter words:<-- the second Scanner input of method A
ABC<--Input 2

123ABC<--The output method A

Enter {A|B|C|D|E} to call method. A=method one B = method two...etc
B<--this is the user input
Enter Number 1:<--the first Scanner input of method B
100<--Input 1
Enter Number 2:<-- the second Scanner input of method B
50<--Input 2

150<--The output method B

Code of Method A {
String output;
private static Scanner keyboard = new Scanner(System.in);
System.out.println("Enter Number:");

String no = keyboard.nextLine();

System.out.println("Enter Words:");

String words = keyboard.nextLine();

//do something...
System.out.println(output);
}

Code of Main class{

private static Scanner keyboard = new Scanner(System.in);
public static void main(String[] args){
Main main = new Main();
main.run();
}
  public void run() {
    boolean running = true;

    while (running) {
        displayMenu();

        String command = keyboard.nextLine();
         String[] parts = command.split("^");

        if ("A".equalsIgnoreCase(command)) {
            //call method A
        } else if ("B".equalsIgnoreCase(command)) {
            //call method B
        } else if....etc

        System.out.println();
    }
输入{A | B | C | D | E}调用方法。A=方法一B=方法二…等

A只要您不关闭
扫描仪(或其底层输入流),尚未读取的标记将保持可供以后使用:读取两行(或4个标记-逗号为1),并且“B
\n
100,50”将保持不变

如果您询问如何提供此类输入,这取决于您的调用方法。如果从
bash
执行,我将使用以下命令:

echo """A
123 , ABC
B
100,50""" | java ...

如果您询问如何从名称动态调用方法,请检查反射API。在我看来,这是一个很好的资源,在它关于检索和调用方法的章节中有两种方法

第一名:

public static void main(String[] args) 
    {

        Scanner s = new Scanner(System.in);
        StringBuilder sb = new StringBuilder();

        while(s.hasNextLine())
        {
            sb.append(s.nextLine());

        }
        System.out.println(sb.toString());
    }
与其直接在控制台中输入,不如先将所有数据输入写到某个地方,然后复制并粘贴到控制台中


秒:

public static void main(String[] args) 
    {

        Scanner s = new Scanner(System.in);
        StringBuilder sb = new StringBuilder();

        while(s.hasNextLine())
        {
            sb.append(s.nextLine());

        }
        System.out.println(sb.toString());
    }
您可以使用
hasneline()
并按ctrl+d键通过键盘发送
EOF

代码:

public static void main(String[] args) 
    {

        Scanner s = new Scanner(System.in);
        StringBuilder sb = new StringBuilder();

        while(s.hasNextLine())
        {
            sb.append(s.nextLine());

        }
        System.out.println(sb.toString());
    }

提供您所有的输入,然后按ctrl+d停止输入。

我希望我的回答有帮助,但您应该在将来提出更具体的问题。你明确的问题是“可能吗”,答案是“可能”。但是,我们不知道您在实现有效的解决方案时缺少了什么,您将很难找到愿意为您生成整个代码的人。谢谢您的回答。我更改了我的问题,以便更具体地告诉我第一种方法是我想做的。但它不能保存到方法的输入中。我怎样才能修复它?@Adonis.C我不明白你问题中的代码。请发布有效的工作代码。什么是“它不能保存到方法的输入中。我如何修复它?”请提供有效的工作代码、您期望的输出(您已经这样做了)和您得到的输出。什么是方法A的
代码
和主类的
代码
?以代码的形式提供代码。不是以英语的形式。你可以说也有类似的方法。但是您需要提供精确的代码结构。