在java中使用split

时间:2015-03-11 22:38:15

标签: java string split

我正试图从joptionpane中读取两个部分。 我希望用户输入两个分数,每个分数用空格分隔。 即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);

我可以读到第一部分,但我无法在第二部分阅读。 我知道分裂不起作用,因为有一个空间所以我如何“跳过”空间并移动到下一个分数? 谢谢

1 个答案:

答案 0 :(得分:4)

实际上,在你在空间分割之前,你要在斜线上分割输入。因此,如果您提供了输入"2/4 1/6",那么您实际上最终会得到数组{"2", "4 1", "6"}

首先考虑在空间分割输入,然后在斜线处分割两半。

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