我想从控制台读取用户输入并在此之后执行特定方法。例如:用户输入" java计算器系列5"或者" java计算器除以20 5.现在程序进入班级教师或划分并用给定的数字计算结果。
班级计算器的一个例子:
public class Calculator {
public static void main(String[] args) {
String[] values = new String[3];
Scanner in = new Scanner(System.in);
String line = in.nextLine();
values = line.split(",");
int x = Integer.parseInt(values[1]);
int y = Integer.parseInt(values[2]);
if(values[0] == "divide") {
Divide.divination(x,y);
}
}
}
}
阶级占卜的一个例子:
public class Divide {
public static int divination(int x, int y) {
int sum = x / y;
return sum;
}
}
答案 0 :(得分:0)
完全未说明的问题。它关于您的应用程序的设计。你谈论输入然后我们有一些课。没有代码,我们什么都不能做。
也许有点帮助。您需要一些输入机制(例如Scanner
),拆分输入字符串并与您的业务逻辑进行一些匹配。
核心理念: 输入:
Scanner sc = new Scanner(System.in);
String input = sc.next();
String[] array = input.Split(' ');
答案 1 :(得分:0)
但是,如果您愿意使用命令行参数中的参数(在您的问题中指定
),那么问题就不够明确了。" java计算器系5"或" java计算器除以20 5.
可能是一个选项:
id
否则,您可以从控制台读取参数:
import java.util.Arrays;
import java.util.List;
public class Calculator {
public static final String TARGET_FACULTY = "faculty";
public static final String TARGET_DIVIDE = "divide";
public static void faculty(List<String> args) {
System.out.println("Hello from faculty : " + args);
// more logic to go here
}
public static void divide(List<String> args) {
System.out.println("Hello from divide : " + args);
// do you thing here
}
public static void main(String[] args) {
if (!validateInput(args)) {
System.out.println("Invalid options! usage: java Calculator <target> <options>");
return;
}
List<String> additionalParameter = Arrays.asList(args).subList(1, args.length);
switch (args[0]) {
case TARGET_FACULTY: {
faculty(additionalParameter);
break;
}
case TARGET_DIVIDE: {
divide(additionalParameter);
break;
}
default:
// Expected default behavior here
throw new IllegalArgumentException("Operation unknown");
}
}
private static boolean validateInput(String[] args) {
// Add more logic here
// - validate the target function
// - validate the additional parameters for that function
return args.length > 1;
}
}
如果您对其他事情有所期待,请不要犹豫。)
干杯!