我用一些方法实现了一个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
123,ABC
B
立即150,50
那么系统将为我打印方法A(123ABC)和B(150)的输出。
我想要的是输入A键盘&#34;输入123到&#34; no&#34;并将ABC输入&#34;单词&#34;马上
我该怎么做?
答案 0 :(得分:0)
只要您不关闭Scanner
(或其基础输入流),尚未读取的令牌仍可供以后使用:读取两行(或4个令牌 - 逗号是一个)和&#34; B \n
100,50&#34;将继续。
如果您正在询问如何提供此类输入,则取决于您的调用方法。如果从bash
执行,我将使用以下内容:
echo """A
123 , ABC
B
100,50""" | java ...
如果您要询问如何从名称中动态调用方法,请检查反射API。我认为Oracle's tutorial是一个很好的资源,here's a link是关于检索和调用方法的部分。
答案 1 :(得分:0)
有两种方法可以做到。
<强>首先强>
不是直接在控制台中输入,而是先将所有数据输入到某处,然后将其复制并粘贴到控制台中。
<强>第二强>
您可以使用hasNexLine()
并通过键盘发送EOF
,方法是按 ctrl + d 。
<强>代码:强>
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 以停止输入。