2015-03-11 6 views
-1

Я пытаюсь прочитать в двух частях от joptionpane. Я хочу, чтобы пользователь вводил две фракции, каждая разбитая пробелом. i.e 2/4 3/5 следует читать 2/4 и 3/5.Использование split в java

Это мой код до сих пор

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); 

Я могу прочитать в первой фракции тонкой, но я не могу читать во второй. Я знаю, что раскол не работает, потому что есть пространство, и как бы я «пропустил» пространство и переместился на следующую фракцию? Спасибо

ответ

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 
Смежные вопросы