多参数输入字符串

时间:2018-05-18 11:53:51

标签: java input

我想做的事

我试图找到一种简单的方法在一个字符串中输入多个参数并传递部分字符串以进行计算。

例如,终端指令通常是多字符指令字符串sudo foo bar = [sudo][foo][bar]

我不知道如何在java中执行此操作,或者它应该如何完成。

到目前为止,我已尝试

ArrayList<Integer> threadList = new ArrayList();


    Scanner scanner = new Scanner(System.in);




    public void printOptions(){
        System.out.println("[1]          > New Primefactordevision");
        System.out.println("[Number]     > Check Status of [Number]");
        System.out.println("[x] [Number] > Terminates Primefactordivision of [Number]");
        System.out.println("[x]          > Terminate");

    }

    public void chooseOperation(){
        printOptions();
        String choice = scanner.next();

        switch(choice){
            case "1":{}
            case "Number":{}
            case String.format("x %s",threadList.get(*choice- x somehow*).toString()):{}
            case "x":{}
        }

当你输入x [integer contained by threadList]时,程序应该终止一个线程,从整数中计算出primefactors。

所以基本上String有2个参数。 [x][integer]

虽然使用x加上定义的integer作为静态参数不是问题,但是让部分选项参数从其他地方动态分配是个问题,有条件的。

这应该如何完成?

2 个答案:

答案 0 :(得分:1)

  

我试图让输入由字母x和整数组成,其中整数将被进一步计算

如果你想确定一个字符串是否匹配格式&#34; x 123&#34;,其中123是一个可能变化的数字(然后提取该数字),带有匹配器的正则表达式是你最好的选择。

String inputStr = "x 123";

Pattern pattern = Pattern.compile("x (\\d+)");
Matcher matcher = pattern.matcher(inputStr);
if(matcher.find()) {
    String num = matcher.group(1);
    System.out.println(num);            
}

答案 1 :(得分:1)

以下程序将从控制台读取字符串和int并打印它们

brew pin