Сейчас я работаю над принятием уравнения в нотации «infix» и удалением любых пробелов внутри этой строки до выполнения остальной части моей программы. Прямо сейчас, без каких-либо пробелов в строке, я получаю правильное уравнение «Postfix» взамен. Но по какой-то причине я не могу удалить пробелы строки, которая была введена с использованием new Scanner(System.in);
, прежде чем выполнять мои методы «Postfix». Вот основной метод моего файла:Удаление пространств из сканера (System.in) Вход
public static void main(String[] args){
Scanner keyboard = new Scanner(System.in);
System.out.print("Enter the equation you'd like to evaluate: ");
InfixToPostFix postFixString = new InfixToPostFix();
String infix = keyboard.next();
String newInfix = infix;
//String newInfix = "9 * 5.3";
//String deleteSpaceInInfix = newInfix.replace(" ", "");
//System.out.println("deleteSpaceInInfix: " + deleteSpaceInInfix);
System.out.println("Postfix representation: " + postFixString.InfixToPostfix(infix));
}
Теперь я отметил три строки, которые я пытался проверить отметив из линий, используя информацию сканера. При этом результат строк прокомментировал: 9*5.3
как и ожидалось. Поэтому я считаю, что это что-то с объектом String Scanner
.
Способ, которым вы видите этот метод сейчас, когда введено 9 * 5.3
, производит только 9
. Все после первого места отбрасывается.
Я попытался найти возможные причины этой проблемы. Я не понимаю и искал ее в документации API, но ничего не видел.
Я был бы признателен за любую информацию, помогающую мне лучше понять, почему мой объект Scanner
(String infix = keyboard.next();
в данном случае) обрабатывается иначе, чем обычный объект String newInfix = "9 * 5.3;
?
Вы пытаетесь использовать nextLine() вместо next()? Если разделитель не предоставляется, сканер будет использовать любой символ пробела в качестве разделителя. Вот почему он возвращает только 9. – VirtualTroll
как указано выше, [next()] (http://www.tutorialspoint.com/java/util/scanner_next.htm) получает только первое слово, пробел является разделителем. – Phiter
Если бы я мог дать вам все очки за помощь. – Pwrcdr87