判断三个参数a,b,c ,只有一个不为空返回true ,其他情况都返回false.boolean  test(string a,string b,Long c)
{
     
}

解决方案 »

  1.   

    没办法,用逻辑图看,只能一个一个的枚举
    boolean test(string a,string b,Long c)
    {
       return (a!=null && b == null && c == null)
                   || (a==null && b != null && c == null)
                   || (a=null && b == null && c != null);
    }
      

  2.   


    public boolean test(String a,String b,Long c) {
    boolean [] flag = new boolean[3];//保存是否为空的结果
    flag[0] = (a == null) ? true:false;
    flag[1] = (b == null) ? true:false;
    flag[2] = (c == null) ? true:false;
    int count = 0;//计数,为空的参数个数
    for(int i=0; i<flag.length; i++) {
    if(flag[i])
            count ++;
    }
    if(count == 2) 
    return true;
    else
    return false;
    }
      

  3.   

    boolean test(string a,string b,Long c)
    {
     int i=0;
     if(a!=null) i++;  
     if(b!=null) i++;
     if(c!=null) i++;
    return i==1?true:false;
    }
      

  4.   

    boolean test(string a,string b,Long c)
    {
       if(!a==null) return true ;
    if(!a==null) return true ;
    if(!a==null) return true ;
    }
      

  5.   

    3楼不错,不过最后一个return写复杂了,return i==1;  就可以了。
      

  6.   

    flag[0] = (a == null) ? true:false;
    复杂了
    直接
    flag[0] = (a == null);
    即可
      

  7.   

    综合前面的:return ( a==null?1:0 + b==null?1:0 + c==null?1:0 ) ==1;
      

  8.   


    只有一个不为空,上面的反了:return ( a==null?0:1 + b==null?0:1 + c==null?0:1 ) ==1;或return ( a!=null?1:0 + b!=null?1:0 + c!=null?1:0 ) ==1;或return ( a==null?1:0 + b==null?1:0 + c==null?1:0 ) ==2;
    y?
      

  9.   


    System.out.println((a == null) ^ (b == null) ^ (c == null));
      

  10.   

    写反了return (a != null) ^ (b != null) ^ (c != null);
      

  11.   

    上面的情况不包括 String s="";这个和null是不一样的额!!
      

  12.   

    学习了不过 (a != null) ^ (b != null) ^ (c != null) 好像不对,如果 a,b,c都不是null, 还是返回 true给个通用解法,即不受3个参数限制的代码boolean test(int maxNotEmpty, Object... args){
        for(Object str: args){
           if (str != null && (String)str.trim().length() > 0){
                maxNotEmpty--;
                if(maxNotEmpty < 0)
                     return false;
           }
        }
        return maxNotEmpty==0;
    }使用的时候这样
      boolean result = test(1, "hello",  "", null);
      

  13.   

    亦或return ((a != null) ^ (b != null) ^ (c != null)) ^ ((a != null) & (b != null) & (c != null));