public class CanShu{
public static void main(String args[]){
if(args[0]!=null&args[1]!=null)
System.out.println(args[0]+args[1]);
else
System.out.println("请任意输入2个字符");
}
}
为什么编译能通过。
可我打java CanShu 的时候却说找不到MAIN啊?
我是想不打参数的时候能打印”请任意输入2个字符“该怎么做呢?
谢谢指教。

解决方案 »

  1.   

    public class CanShu{
    public static void main(String args[]){
    if(args.length>=2)
        System.out.println(args[0]+args[1]);
    else
                 System.out.println("请任意输入2个字符");
    }
    }
      

  2.   

    还有。我怎么把在命令行里输入的参数不当STRING 来使用啊?
      

  3.   

    搞错了,你的程序的确没问题,当输入:java CanShu 存在数组下标越界的问题;而输入 java CanShu wo he ni的时候,输出正常!因为当你没有输入参数时,你的程序却调用了args[0],因为不存在参数,所以运行报错,数组下标越界,故你要考虑没有输入参数的话,怎样不出现这种问题,二楼的方法正好避免了这种情况的出现!
      

  4.   

    第一个的if里面的&是否要改成&&?
      

  5.   

    还有。我怎么把在命令行里输入的参数不当STRING 来使用啊?
    就是说可以把args[0] args[1]输入的是INT 。可以实现乘除算法等。
    我应该怎么做啊
      

  6.   

    if里面的条件本身就有问题,你在运行时命令行不输入参数的话,args[0],args[1]就不存在,null是表示他们存在,只是为空而已。
      

  7.   

    回答rainrainie(雨横风狂)的 
    把字符串改为int的用int包装Integer的类方法parseInt();
    比如把第一个和第二个相除
    int i = Integer.parseInt(args[0]);
    int j = Integer.parseInt(argd[1]);
    int k = i / j;
      

  8.   

    只有这个方法吗?
    用这个方法好象不太好啊
    我输入的本来就是INT了,JAVA要先把他看做是STRING ,然后再调用parseInt转化为INT?
    是不是有点多此一举啊
    有什么方法能直接辨别出输入的是整形的啊?
      

  9.   

    你看一下main方法的参数是什么?是个String[]
      

  10.   

    我晕,,因为你没有编译啊,正确设置环境变量后,
    javac CanShu 
    java CanShu
      

  11.   

    那就是说只能进行2次转换了?
    能另外设置个乘除方法吗?
    乘除方法的参数直接去INT。INT就是是直接输入的数字
      

  12.   

    只有这个方法啊,java是强类型语言,不像javascript那样是弱类型,会自动判断!这才体现了java的严谨性!