StringUtils類中isEmpty與isBlank的區別


org.apache.commons.lang.StringUtils類提供了String的常用操作,最為常用的判空有如下兩種isEmpty(String str)和isBlank(String str)。

StringUtils.isEmpty(String str) 判斷某字符串是否為空,為空的標准是 str==null 或 str.length()==0

System.out.println(StringUtils.isEmpty(null));        //true
System.out.println(StringUtils.isEmpty(""));          //true
System.out.println(StringUtils.isEmpty("   "));       //false
System.out.println(StringUtils.isEmpty("dd"));        //false

StringUtils.isNotEmpty(String str) 等價於 !isEmpty(String str)

StringUtils.isBlank(String str) 判斷某字符串是否為空或長度為0或由空白符(whitespace) 構成

System.out.println(StringUtils.isBlank(null));        //true
System.out.println(StringUtils.isBlank(""));          //true
System.out.println(StringUtils.isBlank("   "));       //true
System.out.println(StringUtils.isBlank("dd"));        //false 

StringUtils.isBlank(String str) 等價於 !isBlank(String str)

實例展示

自定義判斷方法,實現同樣的判斷邏輯

    /** * 判斷對象是否為null,不允許空白串 * * @param object 目標對象類型 * @return
     */
    public static boolean isNull(Object object){ if (null == object) { return true; } if ((object instanceof String)){ return "".equals(((String)object).trim()); } return false; } /** * 判斷對象是否不為null * * @param object * @return
     */
    public static boolean isNotNull(Object object){ return !isNull(object); }
System.out.println(StringHandler.isNull(null));        //true
System.out.println(StringHandler.isNull(""));          //true
System.out.println(StringHandler.isNull("   "));       //true
System.out.println(StringHandler.isNull("dd"));        //false

通常我們通過HttpServletRequest獲取到的參數,需要經過判空處理,轉型然后得到我們想要的值,這里可以進行這些操作的簡單封裝.如下

    
    /** * 從<code>HttpServletRequest</code>中獲取<code>String</code>類型的值, 不允許傳遞空串 * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @return * 返回需要的值 */
    public static final String getString(HttpServletRequest request,String paramName){ return getString(request, paramName, false); } /** * 從<code>HttpServletRequest</code>中獲取<code>String</code>類型的值 * * 如果傳遞過來的參數為包含空白字符串的字符,認為為有效值, 否則返回null * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @return * 返回需要的值 */
    public static final String getString(HttpServletRequest request,String paramName,boolean isWithSpace) { String tmp = request.getParameter(paramName); if(isWithSpace){ //如果允許包含空格,則使用isEmpty判空
            if (!StringUtils.isEmpty(tmp)){ return tmp; } }else{ if(!StringUtils.isBlank(tmp)){ return tmp; } } return null; } /** * 從<code>HttpServletRequest</code>中獲取<code>Long</code>類型的值 * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @return * 返回需要的值 */
    public static final Long getLong(HttpServletRequest request,String paramName) { return getLong(request, paramName, -1L); } /** * 從<code>HttpServletRequest</code>中獲取<code>Long</code>類型的值 * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @param defaultValue * 默認值 * @return * 返回需要的值 */
    public static final Long getLong(HttpServletRequest request,String paramName,Long defaultValue) { String tmp = request.getParameter(paramName); if (!StringUtils.isBlank(tmp)){ try { Long value = Long.parseLong(tmp); return value; } catch (NumberFormatException e) { return -1L; } } return defaultValue; } /** * 從<code>HttpServletRequest</code>中獲取<code>Integer</code>類型的值 * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @return * 返回需要的值 */
    
    public static final Integer getInt(HttpServletRequest request,String paramName) { return getInt(request,paramName, -1); } /** * 從<code>HttpServletRequest</code>中獲取<code>Integer</code>類型的值 * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @param defaultValue * 默認值 * @return * 返回需要的值 */
    public static final Integer getInt(HttpServletRequest request,String paramName, int defaultValue) { String tmp = request.getParameter(paramName); if (!StringUtils.isBlank(tmp)){ try { Integer value = Integer.parseInt(tmp); return value; } catch (NumberFormatException e) { return -1; } } return defaultValue; } /** * 從<code>HttpServletRequest</code>中獲取<code>Short</code>類型的值 * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @return * 返回需要的值 */
    
    public static final Short getShort(HttpServletRequest request,String paramName) { return getShort(request,paramName, (short)-1); } /** * 從<code>HttpServletRequest</code>中獲取<code>Short</code>類型的值 * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @param defaultValue * 默認值 * @return * 返回需要的值 */
    public static final Short getShort(HttpServletRequest request,String paramName, short defaultValue) { String tmp = request.getParameter(paramName); if (!StringUtils.isBlank(tmp)){ try { Short value = Short.parseShort(tmp); return value; } catch (NumberFormatException e) { return (short)-1; } } return defaultValue; } /** * 從<code>HttpServletRequest</code>中獲取<code>Byte</code>類型的值 * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @return * 返回需要的值 */
    
    public static final Byte getByte(HttpServletRequest request,String paramName) { return getByte(request,paramName, (byte)-1); } /** * 從<code>HttpServletRequest</code>中獲取<code>Byte</code>類型的值 * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @param defaultValue * 默認值 * @return * 返回需要的值 */
    public static final Byte getByte(HttpServletRequest request,String paramName, Byte defaultValue) { String tmp = request.getParameter(paramName); if (!StringUtils.isBlank(tmp)){ try { Byte value = Byte.parseByte(tmp); return value; } catch (NumberFormatException e) { return (byte)-1; } } return defaultValue; } /** * 從<code>HttpServletRequest</code>中獲取<code>Double</code>類型的值 * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @return * 返回需要的值 */
    public static final Double getDouble(HttpServletRequest request,String paramName) { return getDouble(request, paramName,-1D); } /** * 從<code>HttpServletRequest</code>中獲取<code>Double</code>類型的值 * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @param defaultValue * 默認值 * @return * 返回需要的值 */
    public static final Double getDouble(HttpServletRequest request,String paramName, Double defaultValue) { String tmp = request.getParameter(paramName); if (!StringUtils.isBlank(tmp)){ try { Double value = Double.parseDouble(tmp); return value; } catch (NumberFormatException e) { return -1D; } } return defaultValue; } /** * 從<code>HttpServletRequest</code>中獲取<code>Float</code>類型的值 * * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @return * 返回需要的值 */
    public static final Float getFloat(HttpServletRequest request,String paramName) { return getFloat(request, paramName,-1F); } /** * 從<code>HttpServletRequest</code>中獲取<code>Float</code>類型的值 * * @param request * @see HttpServletRequest * @param paramName * 參數名稱 * @param defaultValue * 默認值 * @return * 返回需要的值 */
    public static final Float getFloat(HttpServletRequest request,String paramName, Float defaultValue) { String tmp = request.getParameter(paramName); if (!StringUtils.isBlank(tmp)){ try { Float value = Float.parseFloat(tmp); return value; } catch (NumberFormatException e) { return -1F; } } return defaultValue; } 
View Code

再附加個人經常用的幾個String的操作
1.字符串編碼轉換

    /** * change UTF8 To GB2312 * @param target * @return
     */
    public static final String UTF82GB2312(String target) { try { return new String(target.getBytes("UTF-8"), "gb2312"); } catch (Exception localException) { System.err.println("UTF8 TO GB2312 change error!"); } return null; } /** * change UTF8 To GBK * @param target * @return
     */
    public static final String UTF82GBK(String target) { try { return new String(target.getBytes("UTF-8"), "GBK"); } catch (Exception localException) { System.err.println("UTF8 TO GBK change error!"); } return null; } /** * change UTF8 To ISO8859-1 * @param target * @return
     */
    public static final String UTF82ISO(String target) { try { return new String(target.getBytes("UTF-8"), "ISO8859-1"); } catch (Exception localException) { System.err.println("UTF8 TO ISO8859-1 change error!"); } return null; } /** * change Windows-1252 To UTF-8 * @param target * @return
     */
    public static final String Windows1252UTF8(String target) { try { return new String(target.getBytes("Windows-1252"), "UTF-8"); } catch (Exception localException) { System.err.println("Windows1252 To UTF8 chage error"); } return null; } 

2.文本追加高亮

    /** * 給串增加顏色標簽 * @param color * @param target * @return
     */
    public static String withColor(String color, String target) { return withColor(color, target,true); } /** * 給串增加顏色標簽 * @param color * @param target * @param paramBoolean * @return
     */
    public static String withColor(String color, String target, boolean paramBoolean) { if (paramBoolean) return "<font color='".concat(color).concat("'>").concat(target).concat("</font>"); return target; } 
System.out.println(StringHandler.withColor("red","文本串", true));

運行結果

<font color='red'>文本串</font>


轉載請注明出處:[http://www.cnblogs.com/dennisit/p/3705374.html]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM