使用 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
我正在尝试从 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