Java 我可以一次输入所有命令吗?
我用一些方法实现了一个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
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的代码
和主类的代码
?以代码的形式提供代码。不是以英语的形式。你可以说也有类似的方法。但是您需要提供精确的代码结构。