读取用户输入和执行方法
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了读取用户输入和执行方法相关的知识,希望对你有一定的参考价值。
我想从控制台读取用户输入并在此之后执行特定方法。例如:用户键入“java calculator faculty 5”或“java calculator divide 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;
}
}
答案
完全没有指明的问题。它关于您的应用程序的设计。你谈论输入然后我们有一些课。没有代码,我们什么都不能做。也许有点帮助。您需要一些输入机制(例如Scanner
),拆分输入字符串并与您的业务逻辑进行一些匹配。
核心理念:输入:
Scanner sc = new Scanner(System.in);
String input = sc.next();
String[] array = input.Split(' ');
另一答案
但是,如果您愿意使用命令行参数中的参数(如您的问题中所指定的那样),那么问题就不够明确了
“java计算器教员5”或“java计算器划分20 5。
这可能是一个选择:
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;
}
}
否则,您可以从控制台读取参数:
import java.util.Arrays;
import java.util.List;
import java.util.Scanner;
public class Calculator {
public static final String T_FACULTY = "faculty";
public static final String T_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) {
List<String> params = readFromConsole();
if (!validateInput(params)) {
System.out.println("Invalid options! usage: java Calculator <target> <options>");
return;
}
String target = params.get(0);
List<String> extraParams = params.subList(1, params.size());
switch (target) {
case T_FACULTY: {
faculty(extraParams);
break;
}
case T_DIVIDE: {
divide(extraParams);
break;
}
default:
// Expected default behavior here
throw new IllegalArgumentException("Operation unknown");
}
}
private static List<String> readFromConsole() {
// To be adapted
return Arrays.asList(new Scanner(System.in).nextLine().split(" "));
}
private static boolean validateInput(List<String> params) {
// Add more logic here
// - validate the target function
// - validate the additional parameters for that function
return params.size() > 1;
}
}
如果您期待别的东西,请不要犹豫更具体:)
干杯!
以上是关于读取用户输入和执行方法的主要内容,如果未能解决你的问题,请参考以下文章
当 ViewPager 中的片段出现和消失时如何执行一些代码