精华内容
下载资源
问答
  • Java中的jar包,commons.lang和commons.lang3的区别?...StringUtils在commons-lang3和commons-lang中的区别 原文地址 最近经常需要对String做一些判断和处理,于是就用到了Apache提供的StringUtils这个工具类,...

    Java中的jar包,commons.lang和commons.lang3的区别?

    鉴于lang3 不完全兼容之前的版本 所以重开一个路径避免冲突 ,lang3 完全支持1.5以上的特性

    StringUtils在commons-lang3和commons-lang中的区别

    原文地址

    最近经常需要对String做一些判断和处理,于是就用到了Apache提供的StringUtils这个工具类,用的时候发现有两个不同的版本,一个版本位于org.apache.commons.lang下面,另一个则位于org.apache.commons.lang3下面。

    查了一下资料,lang3是Apache Commons 团队发布的工具包,要求jdk版本在1.5以上,相对于lang来说完全支持java5的特性,废除了一些旧的API。该版本无法兼容旧有版本,于是为了避免冲突改名为lang3。

    1.isEmpty、isNotEmpty、isBlank、isNotBlank

        //lang
        public static boolean isEmpty(String str) {
            return str == null || str.length() == 0;
        }
    
        public static boolean isNotEmpty(String str) {
            return !isEmpty(str);
        }
    
        public static boolean isBlank(String str) {
            int strLen;
            if(str != null && (strLen = str.length()) != 0) {
                for(int i = 0; i < strLen; ++i) {
                    if(!Character.isWhitespace(str.charAt(i))) {
                        return false;
                    }
                }
    
                return true;
            } else {
                return true;
            }
        }
    
        public static boolean isNotBlank(String str) {
            return !isBlank(str);
        }
        //lang3
        public static boolean isEmpty(CharSequence cs) {
            return cs == null || cs.length() == 0;
        }
    
        public static boolean isNotEmpty(CharSequence cs) {
            return !isEmpty(cs);
        }
    
        public static boolean isBlank(CharSequence cs) {
            int strLen;
            if(cs != null && (strLen = cs.length()) != 0) {
                for(int i = 0; i < strLen; ++i) {
                    if(!Character.isWhitespace(cs.charAt(i))) {
                        return false;
                    }
                }
    
                return true;
            } else {
                return true;
            }
        }
    
        public static boolean isNotBlank(CharSequence cs) {
            return !isBlank(cs);
        }

    可以看到这几个方法逻辑毫无变化,只是参数类型变了,由String变为CharSequence。那么这个CharSequence是什么呢

    public interface CharSequence {
    
        int length();
    
        char charAt(int index);
    
        CharSequence subSequence(int start, int end);
    
        public String toString();
    }

    CharSequence是一个字符序列的接口,其中定义了一些常用的如length()、subSequence()等方法,String也实现了这个接口。当然大家可能在String里用到的都是subString(),实际上String也实现了subSequence()这个方法,只是直接指向了subString()。
     

    //String中的subSequence方法
    public CharSequence subSequence(int beginIndex, int endIndex) {
            return this.substring(beginIndex, endIndex);
    }

    lang3中使用CharSequence最大的好处就是令这些方法用处更加广泛,不止局限于String,其他一些实现了该接口的类也可以使用StringUtils中的这些方法去进行一些操作。另外我发现很多nio中的类都实现了这个接口,个人猜测可能也有为nio服务的目的。

    2.equals

    //lang
    public static boolean equals(String str1, String str2) {
        return str1 == null?str2 == null:str1.equals(str2);
    }
    //lang3
    public static boolean equals(CharSequence cs1, CharSequence cs2) {
            return cs1 == cs2?true:(cs1 != null && cs2 != null?(cs1.length() != cs2.length()?false:(cs1 instanceof String && cs2 instanceof String?cs1.equals(cs2):CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length()))):false);
    }

    在lang中,第一步是先判断str1是否为空,而在lang3中,第一步则是先判断两个对象是否相同。这个不难理解,如果两个对象的地址相同,那么它们指向的就是同一个对象,内容肯定相同

    3.isAnyEmpty、isNoneEmpty、isAllEmpty

        //lang3
        public static boolean isAnyEmpty(CharSequence... css) {
            if(ArrayUtils.isEmpty(css)) {
                return false;
            } else {
                CharSequence[] var1 = css;
                int var2 = css.length;
    
                for(int var3 = 0; var3 < var2; ++var3) {
                    CharSequence cs = var1[var3];
                    if(isEmpty(cs)) {
                        return true;
                    }
                }
    
                return false;
            }
        }
    
        public static boolean isNoneEmpty(CharSequence... css) {
            return !isAnyEmpty(css);
        }
    
        public static boolean isAllEmpty(CharSequence... css) {
            if(ArrayUtils.isEmpty(css)) {
                return true;
            } else {
                CharSequence[] var1 = css;
                int var2 = css.length;
    
                for(int var3 = 0; var3 < var2; ++var3) {
                    CharSequence cs = var1[var3];
                    if(isNotEmpty(cs)) {
                        return false;
                    }
                }
    
                return true;
            }
        }

    在lang3中,还加入了一些同时判断多个参数的方法,可以看到实际上是将参数列表放入一个CharSequence数组中,然后遍历调用之前的isEmpty等方法。判断blank也有类似的方法。

    可能有人会觉得,很多方法String本身就有啊,为什么还要用StringUtils提供的呢?抛开参数类型不谈,我们可以看到,StringUtils中的方法大多都做了空校验,如果为空时会返回Null或者空串,而String本身的方法在很多传入参数或对象本身为空的时候都会报空指针错误

    展开全文
  • 下载地址:... 1.isEmpty、isNotEmpty、isBlank、isNotBlank 先贴源码 //lang public static boolean isEmpty(String str) { return str == null || str...

    下载地址:https://download.csdn.net/download/qq_38998213/11193418

    1.isEmpty、isNotEmpty、isBlank、isNotBlank
    先贴源码

        //lang
        public static boolean isEmpty(String str) {
            return str == null || str.length() == 0;
        }

        public static boolean isNotEmpty(String str) {
            return !isEmpty(str);
        }

        public static boolean isBlank(String str) {
            int strLen;
            if(str != null && (strLen = str.length()) != 0) {
                for(int i = 0; i < strLen; ++i) {
                    if(!Character.isWhitespace(str.charAt(i))) {
                        return false;
                    }
                }

                return true;
            } else {
                return true;
            }
        }

        public static boolean isNotBlank(String str) {
            return !isBlank(str);
        }
        //lang3
        public static boolean isEmpty(CharSequence cs) {
            return cs == null || cs.length() == 0;
        }

        public static boolean isNotEmpty(CharSequence cs) {
            return !isEmpty(cs);
        }

        public static boolean isBlank(CharSequence cs) {
            int strLen;
            if(cs != null && (strLen = cs.length()) != 0) {
                for(int i = 0; i < strLen; ++i) {
                    if(!Character.isWhitespace(cs.charAt(i))) {
                        return false;
                    }
                }

                return true;
            } else {
                return true;
            }
        }

        public static boolean isNotBlank(CharSequence cs) {
            return !isBlank(cs);
        }

    可以看到这几个方法逻辑毫无变化,只是参数类型变了,由String变为CharSequence。那么这个CharSequence是什么呢?我们看看它的源码:

    /**
     * A <tt>CharSequence</tt> is a readable sequence of <code>char</code> values. This
     * interface provides uniform, read-only access to many different kinds of
     * <code>char</code> sequences.
     * A <code>char</code> value represents a character in the <i>Basic
     * Multilingual Plane (BMP)</i> or a surrogate. Refer to <a
     * href="Character.html#unicode">Unicode Character Representation</a> for details.
     *
     * <p> This interface does not refine the general contracts of the {@link
     * java.lang.Object#equals(java.lang.Object) equals} and {@link
     * java.lang.Object#hashCode() hashCode} methods.  The result of comparing two
     * objects that implement <tt>CharSequence</tt> is therefore, in general,
     * undefined.  Each object may be implemented by a different class, and there
     * is no guarantee that each class will be capable of testing its instances
     * for equality with those of the other.  It is therefore inappropriate to use
     * arbitrary <tt>CharSequence</tt> instances as elements in a set or as keys in
     * a map. </p>
     *
     * @author Mike McCloskey
     * @since 1.4
     * @spec JSR-51
     */

    public interface CharSequence {

        int length();

        char charAt(int index);

        CharSequence subSequence(int start, int end);

        public String toString();
    }
    CharSequence是一个字符序列的接口,其中定义了一些常用的如length()、subSequence()等方法,String也实现了这个接口。当然大家可能在String里用到的都是subString(),实际上String也实现了subSequence()这个方法,只是直接指向了subString()。

    //String中的subSequence方法
    public CharSequence subSequence(int beginIndex, int endIndex) {
            return this.substring(beginIndex, endIndex);
    }

    lang3中使用CharSequence最大的好处就是令这些方法用处更加广泛,不止局限于String,其他一些实现了该接口的类也可以使用StringUtils中的这些方法去进行一些操作。另外我发现很多nio中的类都实现了这个接口,个人猜测可能也有为nio服务的目的。

    2.equals
    //lang
    public static boolean equals(String str1, String str2) {
        return str1 == null?str2 == null:str1.equals(str2);
    }

    //lang3
    public static boolean equals(CharSequence cs1, CharSequence cs2) {
            return cs1 == cs2?true:(cs1 != null && cs2 != null?(cs1.length() != cs2.length()?false:(cs1 instanceof String && cs2 instanceof String?cs1.equals(cs2):CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length()))):false);
    }

    在lang中,第一步是先判断str1是否为空,而在lang3中,第一步则是先判断两个对象是否相同。这个不难理解,如果两个对象的地址相同,那么它们指向的就是同一个对象,内容肯定相同。

    3.isAnyEmpty、isNoneEmpty、isAllEmpty
        //lang3
        public static boolean isAnyEmpty(CharSequence... css) {
            if(ArrayUtils.isEmpty(css)) {
                return false;
            } else {
                CharSequence[] var1 = css;
                int var2 = css.length;

                for(int var3 = 0; var3 < var2; ++var3) {
                    CharSequence cs = var1[var3];
                    if(isEmpty(cs)) {
                        return true;
                    }
                }

                return false;
            }
        }

        public static boolean isNoneEmpty(CharSequence... css) {
            return !isAnyEmpty(css);
        }

        public static boolean isAllEmpty(CharSequence... css) {
            if(ArrayUtils.isEmpty(css)) {
                return true;
            } else {
                CharSequence[] var1 = css;
                int var2 = css.length;

                for(int var3 = 0; var3 < var2; ++var3) {
                    CharSequence cs = var1[var3];
                    if(isNotEmpty(cs)) {
                        return false;
                    }
                }

                return true;
            }
        }


    在lang3中,还加入了一些同时判断多个参数的方法,可以看到实际上是将参数列表放入一个CharSequence数组中,然后遍历调用之前的isEmpty等方法。判断blank也有类似的方法。

    可能有人会觉得,很多方法String本身就有啊,为什么还要用StringUtils提供的呢?抛开参数类型不谈,我们可以看到,StringUtils中的方法大多都做了空校验,如果为空时会返回Null或者空串,而String本身的方法在很多传入参数或对象本身为空的时候都会报空指针错误。
     

    展开全文
  • 最近经常需要对String做一些判断处理,于是就用到了Apache提供的StringUtils这个工具类,用的时候发现有两个不同的版本,一个版本位于org.apache.commons.lang下面,另一个则位于org.apache.commons.lang3下面。...

    (转载)https://blog.csdn.net/Eden_M516/article/details/75042439

    最近经常需要对String做一些判断和处理,于是就用到了Apache提供的StringUtils这个工具类,用的时候发现有两个不同的版本,一个版本位于org.apache.commons.lang下面,另一个则位于org.apache.commons.lang3下面。

    查了一下资料,lang3是Apache Commons 团队发布的工具包,要求jdk版本在1.5以上,相对于lang来说完全支持java5的特性,废除了一些旧的API。该版本无法兼容旧有版本,于是为了避免冲突改名为lang3。这些东西就不再细说了,我们来看看StringUtils中常用的一些方法有什么改变吧。

    PS.本文的java版本为1.8。
    
    •  

    1.isEmpty、isNotEmpty、isBlank、isNotBlank

    先贴源码

        //lang
        public static boolean isEmpty(String str) {
            return str == null || str.length() == 0;
        }
    
        public static boolean isNotEmpty(String str) {
            return !isEmpty(str);
        }
    
        public static boolean isBlank(String str) {
            int strLen;
            if(str != null && (strLen = str.length()) != 0) {
                for(int i = 0; i < strLen; ++i) {
                    if(!Character.isWhitespace(str.charAt(i))) {
                        return false;
                    }
                }
    
                return true;
            } else {
                return true;
            }
        }
    
        public static boolean isNotBlank(String str) {
            return !isBlank(str);
        }
        //lang3
        public static boolean isEmpty(CharSequence cs) {
            return cs == null || cs.length() == 0;
        }
    
        public static boolean isNotEmpty(CharSequence cs) {
            return !isEmpty(cs);
        }
    
        public static boolean isBlank(CharSequence cs) {
            int strLen;
            if(cs != null && (strLen = cs.length()) != 0) {
                for(int i = 0; i < strLen; ++i) {
                    if(!Character.isWhitespace(cs.charAt(i))) {
                        return false;
                    }
                }
    
                return true;
            } else {
                return true;
            }
        }
    
        public static boolean isNotBlank(CharSequence cs) {
            return !isBlank(cs);
        }

    可以看到这几个方法逻辑毫无变化,只是参数类型变了,由String变为CharSequence。那么这个CharSequence是什么呢?我们看看它的源码:

    /**
     * A <tt>CharSequence</tt> is a readable sequence of <code>char</code> values. This
     * interface provides uniform, read-only access to many different kinds of
     * <code>char</code> sequences.
     * A <code>char</code> value represents a character in the <i>Basic
     * Multilingual Plane (BMP)</i> or a surrogate. Refer to <a
     * href="Character.html#unicode">Unicode Character Representation</a> for details.
     *
     * <p> This interface does not refine the general contracts of the {@link
     * java.lang.Object#equals(java.lang.Object) equals} and {@link
     * java.lang.Object#hashCode() hashCode} methods.  The result of comparing two
     * objects that implement <tt>CharSequence</tt> is therefore, in general,
     * undefined.  Each object may be implemented by a different class, and there
     * is no guarantee that each class will be capable of testing its instances
     * for equality with those of the other.  It is therefore inappropriate to use
     * arbitrary <tt>CharSequence</tt> instances as elements in a set or as keys in
     * a map. </p>
     *
     * @author Mike McCloskey
     * @since 1.4
     * @spec JSR-51
     */
    
    public interface CharSequence {
    
        int length();
    
        char charAt(int index);
    
        CharSequence subSequence(int start, int end);
    
        public String toString();
    }

    CharSequence是一个字符序列的接口,其中定义了一些常用的如length()、subSequence()等方法,String也实现了这个接口。当然大家可能在String里用到的都是subString(),实际上String也实现了subSequence()这个方法,只是直接指向了subString()。

    //String中的subSequence方法
    public CharSequence subSequence(int beginIndex, int endIndex) {
            return this.substring(beginIndex, endIndex);
    }

    lang3中使用CharSequence最大的好处就是令这些方法用处更加广泛,不止局限于String,其他一些实现了该接口的类也可以使用StringUtils中的这些方法去进行一些操作。另外我发现很多nio中的类都实现了这个接口,个人猜测可能也有为nio服务的目的。

    2.equals

    //lang
    public static boolean equals(String str1, String str2) {
        return str1 == null?str2 == null:str1.equals(str2);
    }
    //lang3
    public static boolean equals(CharSequence cs1, CharSequence cs2) {
            return cs1 == cs2?true:(cs1 != null && cs2 != null?(cs1.length() != cs2.length()?false:(cs1 instanceof String && cs2 instanceof String?cs1.equals(cs2):CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length()))):false);
    }

    在lang中,第一步是先判断str1是否为空,而在lang3中,第一步则是先判断两个对象是否相同。这个不难理解,如果两个对象的地址相同,那么它们指向的就是同一个对象,内容肯定相同。

    3.isAnyEmpty、isNoneEmpty、isAllEmpty

        //lang3
        public static boolean isAnyEmpty(CharSequence... css) {
            if(ArrayUtils.isEmpty(css)) {
                return false;
            } else {
                CharSequence[] var1 = css;
                int var2 = css.length;
    
                for(int var3 = 0; var3 < var2; ++var3) {
                    CharSequence cs = var1[var3];
                    if(isEmpty(cs)) {
                        return true;
                    }
                }
    
                return false;
            }
        }
    
        public static boolean isNoneEmpty(CharSequence... css) {
            return !isAnyEmpty(css);
        }
    
        public static boolean isAllEmpty(CharSequence... css) {
            if(ArrayUtils.isEmpty(css)) {
                return true;
            } else {
                CharSequence[] var1 = css;
                int var2 = css.length;
    
                for(int var3 = 0; var3 < var2; ++var3) {
                    CharSequence cs = var1[var3];
                    if(isNotEmpty(cs)) {
                        return false;
                    }
                }
    
                return true;
            }
        }
    •  

    在lang3中,还加入了一些同时判断多个参数的方法,可以看到实际上是将参数列表放入一个CharSequence数组中,然后遍历调用之前的isEmpty等方法。判断blank也有类似的方法。

    可能有人会觉得,很多方法String本身就有啊,为什么还要用StringUtils提供的呢?抛开参数类型不谈,我们可以看到,StringUtils中的方法大多都做了空校验,如果为空时会返回Null或者空串,而String本身的方法在很多传入参数或对象本身为空的时候都会报空指针错误。

    常用方法就先介绍到这里,以后有机会再继续更。

    PS.看CharSequence源码的时候发现里面居然有实现了的方法,只是返回值前面加了个default。查了一下发现是Java8的新特性,可以在接口里面定义default方法,从而使得接口在进行扩展的时候,不会破坏与接口相关的实现类代码。可以参考Java 8新特性——default方法(defender方法)介绍 

    展开全文
  • 最近经常需要对String做一些判断处理,于是就用到了Apache提供的StringUtils这个工具类,用的时候发现有两个不同的版本,一个版本位于org.apache.commons.lang下面,另一个则位于org.apache.commons.lang3下面。...

    http://blog.csdn.net/eden_m516/article/details/75042439

     

    最近经常需要对String做一些判断和处理,于是就用到了Apache提供的StringUtils这个工具类,用的时候发现有两个不同的版本,一个版本位于org.apache.commons.lang下面,另一个则位于org.apache.commons.lang3下面。

    查了一下资料,lang3是Apache Commons 团队发布的工具包,要求jdk版本在1.5以上,相对于lang来说完全支持java5的特性,废除了一些旧的API。该版本无法兼容旧有版本,于是为了避免冲突改名为lang3。这些东西就不再细说了,我们来看看StringUtils中常用的一些方法有什么改变吧。

     

    PS.本文的java版本为1.8。
    

      

    1.isEmpty、isNotEmpty、isBlank、isNotBlank

    先贴源码

    //lang
        public static boolean isEmpty(String str) {
            return str == null || str.length() == 0;
        }
    
        public static boolean isNotEmpty(String str) {
            return !isEmpty(str);
        }
    
        public static boolean isBlank(String str) {
            int strLen;
            if(str != null && (strLen = str.length()) != 0) {
                for(int i = 0; i < strLen; ++i) {
                    if(!Character.isWhitespace(str.charAt(i))) {
                        return false;
                    }
                }
    
                return true;
            } else {
                return true;
            }
        }
    
        public static boolean isNotBlank(String str) {
            return !isBlank(str);
        }
    

      

    //lang3
        public static boolean isEmpty(CharSequence cs) {
            return cs == null || cs.length() == 0;
        }
    
        public static boolean isNotEmpty(CharSequence cs) {
            return !isEmpty(cs);
        }
    
        public static boolean isBlank(CharSequence cs) {
            int strLen;
            if(cs != null && (strLen = cs.length()) != 0) {
                for(int i = 0; i < strLen; ++i) {
                    if(!Character.isWhitespace(cs.charAt(i))) {
                        return false;
                    }
                }
    
                return true;
            } else {
                return true;
            }
        }
    
        public static boolean isNotBlank(CharSequence cs) {
            return !isBlank(cs);
        }
    

      可以看到这几个方法逻辑毫无变化,只是参数类型变了,由String变为CharSequence。那么这个CharSequence是什么呢?我们看看它的源码:

    /**
     * A <tt>CharSequence</tt> is a readable sequence of <code>char</code> values. This
     * interface provides uniform, read-only access to many different kinds of
     * <code>char</code> sequences.
     * A <code>char</code> value represents a character in the <i>Basic
     * Multilingual Plane (BMP)</i> or a surrogate. Refer to <a
     * href="Character.html#unicode">Unicode Character Representation</a> for details.
     *
     * <p> This interface does not refine the general contracts of the {@link
     * java.lang.Object#equals(java.lang.Object) equals} and {@link
     * java.lang.Object#hashCode() hashCode} methods.  The result of comparing two
     * objects that implement <tt>CharSequence</tt> is therefore, in general,
     * undefined.  Each object may be implemented by a different class, and there
     * is no guarantee that each class will be capable of testing its instances
     * for equality with those of the other.  It is therefore inappropriate to use
     * arbitrary <tt>CharSequence</tt> instances as elements in a set or as keys in
     * a map. </p>
     *
     * @author Mike McCloskey
     * @since 1.4
     * @spec JSR-51
     */
    
    public interface CharSequence {
    
        int length();
    
        char charAt(int index);
    
        CharSequence subSequence(int start, int end);
    
        public String toString();
    }
    

      CharSequence是一个字符序列的接口,其中定义了一些常用的如length()、subSequence()等方法,String也实现了这个接口。当然大家可能在String里用到的都是subString(),实际上String也实现了subSequence()这个方法,只是直接指向了subString()。

    //String中的subSequence方法
    public CharSequence subSequence(int beginIndex, int endIndex) {
            return this.substring(beginIndex, endIndex);
    }
    

      lang3中使用CharSequence最大的好处就是令这些方法用处更加广泛,不止局限于String,其他一些实现了该接口的类也可以使用StringUtils中的这些方法去进行一些操作。另外我发现很多nio中的类都实现了这个接口,个人猜测可能也有为nio服务的目的。

    2.equals

    //lang
    public static boolean equals(String str1, String str2) {
        return str1 == null?str2 == null:str1.equals(str2);
    }
    

      

    //lang3
    public static boolean equals(CharSequence cs1, CharSequence cs2) {
            return cs1 == cs2?true:(cs1 != null && cs2 != null?(cs1.length() != cs2.length()?false:(cs1 instanceof String && cs2 instanceof String?cs1.equals(cs2):CharSequenceUtils.regionMatches(cs1, false, 0, cs2, 0, cs1.length()))):false);
    }
    

      

    在lang中,第一步是先判断str1是否为空,而在lang3中,第一步则是先判断两个对象是否相同。这个不难理解,如果两个对象的地址相同,那么它们指向的就是同一个对象,内容肯定相同。

    3.isAnyEmpty、isNoneEmpty、isAllEmpty

     //lang3
        public static boolean isAnyEmpty(CharSequence... css) {
            if(ArrayUtils.isEmpty(css)) {
                return false;
            } else {
                CharSequence[] var1 = css;
                int var2 = css.length;
    
                for(int var3 = 0; var3 < var2; ++var3) {
                    CharSequence cs = var1[var3];
                    if(isEmpty(cs)) {
                        return true;
                    }
                }
    
                return false;
            }
        }
    
        public static boolean isNoneEmpty(CharSequence... css) {
            return !isAnyEmpty(css);
        }
    
        public static boolean isAllEmpty(CharSequence... css) {
            if(ArrayUtils.isEmpty(css)) {
                return true;
            } else {
                CharSequence[] var1 = css;
                int var2 = css.length;
    
                for(int var3 = 0; var3 < var2; ++var3) {
                    CharSequence cs = var1[var3];
                    if(isNotEmpty(cs)) {
                        return false;
                    }
                }
    
                return true;
            }
        }
    

      

    在lang3中,还加入了一些同时判断多个参数的方法,可以看到实际上是将参数列表放入一个CharSequence数组中,然后遍历调用之前的isEmpty等方法。判断blank也有类似的方法。

    可能有人会觉得,很多方法String本身就有啊,为什么还要用StringUtils提供的呢?抛开参数类型不谈,我们可以看到,StringUtils中的方法大多都做了空校验,如果为空时会返回Null或者空串,而String本身的方法在很多传入参数或对象本身为空的时候都会报空指针错误。

    常用方法就先介绍到这里,以后有机会再继续更。

     

    转载于:https://www.cnblogs.com/achengmu/p/8336054.html

    展开全文
  • 转自:https://blog.csdn.net/eden_m516/article/details/75042439 参考:http://www.importnew.com/7302.html
  • commons-lang 包下的 isEmpty isBlank 的区别 2019.11.25 今天是离职后面试的第二家公司, 面试过程中问到了 你平时是怎么判断字符串不为空的, 我便回答了使用 Commons-lang 包下的 StringUtils 类 的isNotEmpty ...
  • 1.isNotBlank() 意思是 不是空白的; 点开源码可以看到 空格 则返回false 一般登录注册 校验用户名是否存在,有事会存在空格  2.再看 isEmpty(); 空格符号 则会返回true,意思是空格标示有值 ... ...
  • 相信很多java程序员在写代码的时候遇到判断某字符串是否为空的时候会用到StringUtils类中isBlankisEmpty方法,这两个方法到底有什么区别呢?我们用一段代码来阐述这个区别吧: 1 @Test 2 public void ...
  • 查看源码可以得知两者都可以对 null“” 进行判空,但是isEmpty不会对 “空格” 进行判空。
  • 1、当替换参数为字符串时无任何区别; 2、replaceAll的参数可以是正则表达式,replace不支持; 3、replaceFirst替换的是符合条件的第一个字符,replaceAll替换符合的所有字符; ...
  • 主要区别在于对空字符串的判断StringUtils.isBlank中可以包含空字符串,返回true StringUtils.isEmpty() StringUtils.isEmpty(null) = true StringUtils.isEmpty("") = true StringUtils.isEmpty(" ") = false ...
  • 相同点:1.都为泛型接口里的重写方法,Comparable接口里面...但侧重点各不同.3.俩者都可以对对象进行排序,比如升序排序或降序排序.按年龄排序:package com.test; import java.util.ArrayList; import java.util.Coll...
  • 最近在做代码reviewed的时候,发现项目中对字符串的非空校验使用了org.apache.commons.lang3包,有的地方使用了isBlank,有的地方使用了Empty.那么问题来了,使用他们两个有什么区别呢? 话不多说,先上代码,查看...
  • 单一的使用 zh zh-cn 是失效的。 标记例子: 1. 简体中文页面:html lang=zh-cmn-Hans 表示普通话/国语 ...3. 英语页面:html lang=en 转载于:https://www.cnblogs.com/yunshu51/p/10518604.html...
  • apache-common-lang3中org.apache.commons.lang3.mutable包下的类是干什么用的?MutableInt跟Integer什么区别?...org.apache.commons.lang3.mutable包对Java基本类型String提供了一些简单的可变值封装类,比...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 461
精华内容 184
关键字:

lang3和lang区别