public class test {
public static void main(String args[]){
String a = "";

if(a == null || a.equals("")){

}else{
System.out.println("执行1");
}

if(a != null && !a.equals("")){
System.out.println("执行2");
}
System.out.println("over");
}
}

解决方案 »

  1.   

    输出:over
    ||和&&的区别就是一个是或一个是与而已对于字符串a来说你这两个判断返回的永远是相反的结果
      

  2.   

    根据 deMorgan 定理可以知道这样的转换是正确的,呵呵
      

  3.   

    同意,好像有这么一个公式:
    ┐(p∨q)=┐p∨┐q
      

  4.   

    上面的错了,公式是这样的!
    ┐(p∨q)= ┐p∧┐q
      

  5.   

    其实我的目的就是验证一下 从getParameter中取出的值是不是null 或者 “” 因为想强制转换一下从中取得的值又不想让他在这两种情况下抛异常,有没有好的捕获方法,就是说有值你就给我存到对象里 没有就算了 执行下面的
    public A {
        private int a1;
        private int a2;
        get,set ..
    }//servlet 的 protected void doPost ( HttpServletRequest request, HttpServletResponse response){
       int a1 = Integer.parseInt(request.(request.getParameter("a1")));
       int a2 = Integer.parseInt(request.(request.getParameter("a2")));}
    //这样肯定会报错 我现在是每个都要加一个验证,能不能用一个try catch什么的直接捕获异常,然后return 0 这样让没有值的都变成零 这么一件事 有谁指点下
      

  6.   

    一模一样
    离散数学里的
     !(A || B) = !A && !B
      

  7.   


    if(a != null && !a.equals("")){
                System.out.println("执行2");
            }可以写做这样if(!("".equals(a))) {
       System.out.println("执行2");
    }