当前位置: 技术问答>java相关
一个奇怪的Java问题
来源: 互联网 发布时间:2015-09-17
本文导语: public class Test {public static void main(String[] args) { int t=0; int i=Integer.parseInt(args[0]); int j=Integer.parseInt(args[2]); if(args[1].equals("*")) { t=i*j; System.out.println(t); } ...
public class Test
{public static void main(String[] args)
{ int t=0;
int i=Integer.parseInt(args[0]);
int j=Integer.parseInt(args[2]);
if(args[1].equals("*"))
{ t=i*j;
System.out.println(t);
}
}
}
当编译过后,用java Test 2 * 3运行时出现问题,但是把程序中的“*”换成#或其他符号都可以,就是不能用*,真奇怪。
{public static void main(String[] args)
{ int t=0;
int i=Integer.parseInt(args[0]);
int j=Integer.parseInt(args[2]);
if(args[1].equals("*"))
{ t=i*j;
System.out.println(t);
}
}
}
当编译过后,用java Test 2 * 3运行时出现问题,但是把程序中的“*”换成#或其他符号都可以,就是不能用*,真奇怪。
|
很简单:
java Test 2 "*" 3运
java Test 2 "*" 3运
|
因为*被解释成统配符了
你试一试System.out.println(args[1]);
你会发现打印的是当前目录的文件名
解决办法是不用args,自己用FormatedInput读出来
你试一试System.out.println(args[1]);
你会发现打印的是当前目录的文件名
解决办法是不用args,自己用FormatedInput读出来
|
我在VAJ里面跟踪允许OK!!!
但是在JDK下面就NO!!!
但是在JDK下面就NO!!!
|
是这样吧:java Test 2 '*' 3