Multi Argument Input String - PullRequest
       5

Multi Argument Input String

0 голосов
/ 18 мая 2018

Что я пытаюсь сделать

Я пытаюсь найти простой способ ввода нескольких аргументов в одну строку и передачи ее части для вычисления.

Например, терминальные инструкции обычно представляют собой строку из многострочных инструкций 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 в качестве статического параметра не является проблемой, проблема в том, что часть параметра выбора динамически выделяется из другого места,быть условным.

Как это должно быть сделано?

Ответы [ 2 ]

0 голосов
/ 18 мая 2018

Следующая программа будет читать строку и int из консоли и печатать их

import java.util.Scanner;

public class ScannerTest {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (true) {
            String s = sc.next();
            int i = sc.nextInt();
            System.out.println(s+"/"+i);
        }
    }
}
0 голосов
/ 18 мая 2018

Я пытаюсь получить ввод, состоящий из буквы 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);            
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...