Java 无法在终端中输入“*”
Unable to input "*" in terminal for Java
我正在尝试在 java 中编写一个简单的计算器,它在控制台中接收输入。
eg. java 30 - 7 (works)
java 30 * 7 (doesn't work)
稍加调试后,似乎 * 被解析为 class 名称而不是字符串 '*'。
eg. public static void main(String[] args) {
System.out.println(args[1]);
// (returns Calculator.java and Calculator.class)
}
有谁知道为什么?有没有办法解决这个问题?
it seems that * is parsed into the main method as the class name instead of String '*'.
事实并非如此。
您正在使用的 shell(可能是 bash)扩展 *
以匹配当前目录中的所有文件,然后调用 java
。这被称为 globbing,与 Java 无关。如果你不想参数被shell解析,传递一个字符串:
java some_app '30 * 7'
我正在尝试在 java 中编写一个简单的计算器,它在控制台中接收输入。
eg. java 30 - 7 (works)
java 30 * 7 (doesn't work)
稍加调试后,似乎 * 被解析为 class 名称而不是字符串 '*'。
eg. public static void main(String[] args) {
System.out.println(args[1]);
// (returns Calculator.java and Calculator.class)
}
有谁知道为什么?有没有办法解决这个问题?
it seems that * is parsed into the main method as the class name instead of String '*'.
事实并非如此。
您正在使用的 shell(可能是 bash)扩展 *
以匹配当前目录中的所有文件,然后调用 java
。这被称为 globbing,与 Java 无关。如果你不想参数被shell解析,传递一个字符串:
java some_app '30 * 7'