首页 > 解决方案 > 多参数输入字符串

问题描述

我正在尝试做的事情

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

例如,终端指令通常是一个多重指令字符串 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].

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

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

这应该怎么做?

标签: javainput

解决方案


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

如果您想确定一个字符串是否与格式“x 123”匹配,其中 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);            
}

推荐阅读