使用 java 中的拆分

Using the split in java

我正在尝试从 joptionpane 中读取两个分数。 我希望用户输入两个分数,每个分数由 space 分割。 即 2/4 3/5 应该读作 2/4 和 3/5。

到目前为止,这是我的代码

String input =  JOptionPane.showInputDialog("Please enter the two fractions you want to add \nFor example (2/4 1/6)");
                Scanner scanner = new Scanner (input);
                String stringNumbers = scanner.nextLine();
                String[] rationalNumbers = stringNumbers.split("/");
                int numerator = Integer.parseInt(rationalNumbers[0]);
                int denominator = Integer.parseInt(rationalNumbers[1]);
                String [] rationalNumbers2 = stringNumbers.split(" ");
                int numerator2 = Integer.parseInt(rationalNumbers2[0]);
                int denominator2 = Integer.parseInt(rationalNumbers2[1]);
                Rational rationalNumber1 = new Rational (numerator,denominator);
                Rational rationalNumber2 = new Rational (numerator2,denominator2);
                Rational sumOfRationalNos = rationalNumber1.add(rationalNumber2);

我可以很好地阅读第一部分,但我无法阅读第二部分。 我知道拆分不起作用,因为有一个 space 那么我如何 "skip" space 并移动到下一个分数? 谢谢

事实上,在 space 处拆分之前,您先在斜线处拆分输入。所以,如果你输入 "2/4 1/6" 你实际上会得到数组 {"2", "4 1", "6"}.

考虑先在 space 处拆分输入,然后在斜线处拆分两半。

String[] halves = input.split(" ");
String[] first = halves[0].split("/"); // The first fraction
String[] second = halves[1].split("/"); // The second fraction