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;
}

再附加个人经常用的几个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]

StringUtils类中isEmpty与isBlank的区别的更多相关文章

  1. StringUtils类中 isEmpty() 与 isBlank()的区别

    org.apache.commons.lang.StringUtils类提供了String的常用操作,最为常用的判空有如下两种isEmpty(String str)和isBlank(String st ...

  2. java中StringUtils中isEmpty 和isBlank的区别

    StringUtils在commons-lang-2.2.jar包中:org.apache.commons.lang.StringUtils ; StringUtils方法的操作对象是java.lan ...

  3. StringUtils中isEmpty 和isBlank的区别

    StringUtils在commons-lang-2.2.jar包中:org.apache.commons.lang.StringUtils ; StringUtils方法的操作对象是java.lan ...

  4. StringUtils中 isEmpty 和isBlank的区别

    StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出Nu ...

  5. org.apache.commons.lang.StringUtils中isEmpty和isBlank的区别

    public static boolean isEmpty(String str) 判断某字符串是否为空,为空的标准是str==null或str.length()==0 StringUtils.isE ...

  6. StringUtils 中 isEmpty 和 isBlank 的区别

    在项目的工作学习中经常用到了 apache  commons 中的 StringUtils 的 isBlank 和 isEmpty 来判断字符串是否为空,这个方法都是判断字符串是否为空做判断的,以至于 ...

  7. StringUtils里的isEmpty和isBlank的区别

    这边首先以一个简单的测试代码来解释这两者的区别: @Test void stringTest(){ String a = " "; boolean empty = StringUt ...

  8. org.apache.commons.lang3.StringUtils类中isBlank和isEmpty方法的区别

    相信很多java程序员在写代码的时候遇到判断某字符串是否为空的时候会用到StringUtils类中isBlank和isEmpty方法,这两个方法到底有什么区别呢?我们用一段代码来阐述这个区别吧: @T ...

  9. java判断一个字符串是否为空,isEmpty和isBlank的区别

    转载于:https://blog.csdn.net/liusa825983081/article/details/78246792 实际应用中,经常会用到判断字符串是否为空的逻辑 比较简单的就是用 S ...

随机推荐

  1. [转] HTML5利用WebRTC的getUserMedia获取摄像头信息模拟拍照及视频(完整示例)

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...

  2. 「BZOJ2882」工艺

    题解: 就是个最小表示法 大概做法就是扩大2倍原串 然后双指针比较,如果不相同了直接跳 原理随便画画就知道了

  3. CSS3常用功能的写法 转

    CSS3常用功能的写法 作者: 阮一峰   随着浏览器的升级,CSS3已经可以投入实际应用了. 但是,不同的浏览器有不同的CSS3实现,兼容性是一个大问题.上周的YDN介绍了CSS3 Please网站 ...

  4. 利用dwebsocket在Django中使用Websocket

    一.Websockets介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信 ...

  5. BZOJ4994 [Usaco2017 Feb]Why Did the Cow Cross the Road III 树状数组

    欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4994 题意概括 给定长度为2N的序列,1~N各处现过2次,i第一次出现位置记为ai,第二次记为bi ...

  6. 8.Django-form组件

    1.form组件的校验功能 文件formsdemo models from django.db import models # Create your models here. class UserI ...

  7. 037 关于pom.xml的一些问题的理解

    最近在pom上出了一些问题,搞了一天才理解了一些问题,记录一下. 当在覆盖本地repository包之后,pom.xml上面出现了一个x. 当mvn->update project之后,还是有许 ...

  8. ubuntu server 18.04 lts 终端中文显示为乱码的解决方案

    .最近安装ubuntu server 18.04 lts版本发现系统自带的终端下无论是编辑中文,还是显示中文均出现乱码,还是老毛病, 今天无意中发现通过ssh,远程访问,在windows中安装开源的p ...

  9. python套接字编程基础

    python套接字编程 目录 socket是什么 套接字的工作流程 基于tcp的套接字 基于udp的套接字 socket是什么 客户端/服务器架构(C/S架构) 服务端:提供服务的一端 客户端:请求服 ...

  10. Linux启动详解

    <概述> Linux启动大致分为一下几个步骤,详细的启动步骤在<启动分析>中详解. 1:首先bios加电自检,初始化(这个过程会检测相关硬件(cpu,内存,显卡,硬盘等)) 2 ...