从扫描仪 (System.in) 输入中删除空格
Removing Spaces from Scanner (System.in) Input
现在我正在研究用 "infix" 符号表示的方程式,并在执行我的程序的其余部分之前删除该字符串中的任何 space。现在,在字符串中没有任何 space 的情况下,我在 return 中收到了正确的 "Postfix" 等式。但出于某种原因,在执行我的 "Postfix" 方法之前,我似乎无法删除使用 new Scanner(System.in);
输入的字符串的 space。这是我的文件的主要方法:
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
正如预期的那样。所以我相信它与 Scanner
字符串对象有关。
你现在看到这个方法的方式,当输入 9 * 5.3
时只产生 9
。第一个 space 之后的所有内容都将被删除。
我试图查找导致这个我不理解的问题的可能原因,并在 API 文档中进行了查找,但没有看到任何内容。
如果有任何信息可以帮助我更好地理解为什么我的 Scanner
对象(在本例中为 String infix = keyboard.next();
)的处理方式与普通的 String newInfix = "9 * 5.3;
对象不同,我将不胜感激?
Scanner
的默认分隔符是空格。如果要阅读整行,请使用 nextLine()
:
Scanner keyboard = new Scanner(System.in);
String infix = keyboard.nextLine();
infix = infix.replace(" ", "");
System.out.println(infix);
注意:还有hasNextLine()
检查输入中是否有另一行。
现在我正在研究用 "infix" 符号表示的方程式,并在执行我的程序的其余部分之前删除该字符串中的任何 space。现在,在字符串中没有任何 space 的情况下,我在 return 中收到了正确的 "Postfix" 等式。但出于某种原因,在执行我的 "Postfix" 方法之前,我似乎无法删除使用 new Scanner(System.in);
输入的字符串的 space。这是我的文件的主要方法:
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
正如预期的那样。所以我相信它与 Scanner
字符串对象有关。
你现在看到这个方法的方式,当输入 9 * 5.3
时只产生 9
。第一个 space 之后的所有内容都将被删除。
我试图查找导致这个我不理解的问题的可能原因,并在 API 文档中进行了查找,但没有看到任何内容。
如果有任何信息可以帮助我更好地理解为什么我的 Scanner
对象(在本例中为 String infix = keyboard.next();
)的处理方式与普通的 String newInfix = "9 * 5.3;
对象不同,我将不胜感激?
Scanner
的默认分隔符是空格。如果要阅读整行,请使用 nextLine()
:
Scanner keyboard = new Scanner(System.in);
String infix = keyboard.nextLine();
infix = infix.replace(" ", "");
System.out.println(infix);
注意:还有hasNextLine()
检查输入中是否有另一行。