读取用户输入和执行方法

时间:2017-12-20 09:58:36

标签: java arrays methods int java.util.scanner

我想从控制台读取用户输入并在此之后执行特定方法。例如:用户输入" 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;
        }
}

2 个答案:

答案 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;
    }
}

如果您对其他事情有所期待,请不要犹豫。)

干杯!