解决方案 »

  1.   

        public static boolean isNull(String str){
            boolean isNull = true;
            if(str != null && !"".equals(str.trim()) && !"null".equals(str)){
                isNull = false;
            }
            return isNull;
        }
      

  2.   

    本帖最后由 fangmingshijie 于 2014-02-08 14:19:02 编辑
      

  3.   

    StringUtils.isBlank(arg0)一直用这个没去研究过好不好
      

  4.   

    StringUtils.isEmpty(str);
        public static boolean isEmpty(CharSequence cs) {
            return cs == null || cs.length() == 0;
        }
      

  5.   

    感觉还是第一个简洁第二个其实有点违反了 函数设计的原则
    应该自己在外面trim了 传进来
      

  6.   

    这个是考虑效率问题么?那就要看底层方法咯。
    可以测试下,处理时间,就知道了,顺便监控下,JVM的内存用量。
      

  7.   

    我写代码的时候,大部分的变量都不允许有null,一般都给一个初始值这叫NULL值强迫症
      

  8.   

    一般使用第二种。Commons Lang3 中有现成的 StringUtils.isBlank,同时这个类也有 isEmpty 方法,实现你的第一种功能。当然了,Commons Lang3 的 StringUtils.isBlank, isEmpty 方法的参数是 CharSequence,抽象层次更高一些。
      

  9.   

    我觉得使用的人数占一半一半吧。这个应该是第一种写法比较合理,如果加入一个trim操作,你的方法已经是两个功能,请注意设计原则吧,功能单一性
      

  10.   


    public static boolean isNotEmpty(String string) {
            return string != null && string != "";
        }
      

  11.   

    先不说需求, 就性能来说的话,肯定是第一个了, 第一个只调用了字符串 length() 方法, 第二个调用了字符串的 trim() 和 length()方法。
      

  12.   

    细扣的话,就像3L写的,有几种情况。单就LZ提供方案2的方法,这本身不是一个boolean型的返回,需要调用者再多一次判断:if("".equals(方法2调用)),不太好。
      

  13.   

    额~~
    public static isNotEmpty(String str) {
      return str != null && !str.isEmpty();
    }
    如果是要判断某个字符串是否等于一个常量字符串"hello".equals(str);
    如果是要返回一个字符串的话
    str != null ? str : "";
      

  14.   

    第二种。apache的utils包里也有类似实现
      

  15.   


    第一个不管从代码设计还是效率上来说,都是比较不错的。但是注释不敢恭维,注释的意思和方法命名、代码实现明显相反。ps:中式英语用得不错
    第二个问题很多。
    1、方法的命名,很难理解。从方法上看,这个方法肯定是返回boolean类型更好。
    2、这个方法从命名上看,应该只需要判断Null.但是在实现上使用了trim。trim()的效率是很低的。并且如果看过jdk trim方法实现的应该知道。java对字符串的拆分、trim等都会造成大量的垃圾内存,这个方法在频发调用时效率会更低。吐槽一下:
    1、虽然是很简单的util方法,但是写util是很考验人的。每个人都要对自己每一行代码负责。这是一种态度。
    2、对于注释和方法命名,用一句很流行的话:“取个名字很难”。方法命名应该让别人从你的方法名上就知道你要干嘛。对注释,要么你命名好方法,就啥都别写,要写就要很准确的表达。否则误人子弟
      

  16.   

    字符串我们一般不判断长度 最多判断下null
    硬说要方法的恶化如果要我写
    我可能会写成 str.trim().isEmpty();
      

  17.   

    连在一起 可能像第二种了 至于null的控制 这玩意确实有点烦 一般是没办法控制的情况才显示的判断null不然变量都不会为null的
      

  18.   

    我现在就在用freeer所以对null深恶痛绝 每个null都要判断 累觉不爱了
      

  19.   

    isEmpty(String s)
    {
      return s == null || s.empty();
    }
      

  20.   

        : null
    ""  : empty
    " " : whitespace
      

  21.   

    两种方法视需求而定。第一种方法比较简洁, 代码整洁性方面更好。但是稍微有些别扭的是NOT。建议改为isEmpty(...)。尽量让方法简单直接,容易读。第二种方法可以防止NPE, 缺点是改变了原始对象的值。而且方法名中带有Is, 看起来像是要返回boolean而不是对象。最好命名为如verifyString的方法名。
      

  22.   

    if(str!=null&&!"".equals(str))至于!"null".equals(str)没有必要。
      

  23.   

    额,似乎都没注意过效率的问题
    一般都是
    if(str!=null && !"".equals(str))
    {
        ........
    }
      

  24.   

    至少感觉 isNotEmpty 这个方法的名字不太好比如这么写代码的时候
    if (!isNotEmpty(XXX))总得动脑筋想想什么情况下走if分支,什么时候走else分支不能让大多数程序员秒懂的代码不是好代码
      

  25.   

      /**
       * Returns {@code true} if the given string is null or is the empty string.
       *
       * <p>Consider normalizing your string references with {@link #nullToEmpty}.
       * If you do, you can use {@link String#isEmpty()} instead of this
       * method, and you won't need special null-safe forms of methods like {@link
       * String#toUpperCase} either. Or, if you'd like to normalize "in the other
       * direction," converting empty strings to {@code null}, you can use {@link
       * #emptyToNull}.
       *
       * @param string a string reference to check
       * @return {@code true} if the string is null or is the empty string
       */
      public static boolean isNullOrEmpty(@Nullable String string) {
        return string == null || string.length() == 0; // string.isEmpty() in Java 6
      }http://code.google.com/p/guava-libraries/source/browse/guava/src/com/google/common/base/Strings.java
      

  26.   

        public static boolean isNull(Object parmValue) {
            return parmValue == null;
        }
        public static boolean isEmpty(String parmValue) {
            return (parmValue == null) || ("".equals(parmValue));
        }
        这样写也可以你说呢?