【问题标题】:Unable to input "*" in terminal for Java无法在 Java 终端中输入“*”
【发布时间】:2015-01-20 05:28:26
【问题描述】:

我正在尝试用 java 编写一个简单的计算器,它接受控制台中的输入。

 eg. java 30 - 7  (works)
     java 30 * 7  (doesn't work)

经过一点调试,似乎是*被解析到main方法中作为类名,而不是String '*'。

 eg. public static void main(String[] args) {
          System.out.println(args[1]);
          // (returns Calculator.java and Calculator.class)
     }

有人知道为什么吗?有没有办法解决这个问题?

【问题讨论】:

  • 您在几个小时前发布了这个确切的问题。怎么又发了?
  • @immibis 是的,我在 linux 上。
  • @Kon 对不起,我不太明白你的意思。可能是其他人发布了您之前看到的问题。

标签: java string terminal console


【解决方案1】:

好像*被解析到main方法中作为类名而不是String '*'。

这不是正在发生的事情。

在调用java 之前,您正在使用的shell(可能是bash)扩展* 以匹配当前目录中的所有文件。这被称为globbing,与Java 无关。如果您不希望 shell 解析参数,请传递一个字符串:

java some_app '30 * 7'

【讨论】:

  • 或使用'*'\* 对其进行转义。使用字符串会改变传递的参数数量。
猜你喜欢
  • 2015-10-23
  • 1970-01-01
  • 2014-12-21
  • 2016-06-30
  • 2021-11-08
  • 1970-01-01
  • 1970-01-01
  • 2012-08-22
  • 1970-01-01
相关资源
最近更新 更多