我正试图从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);
我可以读到第一部分,但我无法在第二部分阅读。 我知道分裂不起作用,因为有一个空间所以我如何“跳过”空间并移动到下一个分数? 谢谢
答案 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