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;
}
再附加个人经常用的几个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的区别的更多相关文章
- StringUtils类中 isEmpty() 与 isBlank()的区别
org.apache.commons.lang.StringUtils类提供了String的常用操作,最为常用的判空有如下两种isEmpty(String str)和isBlank(String st ...
- java中StringUtils中isEmpty 和isBlank的区别
StringUtils在commons-lang-2.2.jar包中:org.apache.commons.lang.StringUtils ; StringUtils方法的操作对象是java.lan ...
- StringUtils中isEmpty 和isBlank的区别
StringUtils在commons-lang-2.2.jar包中:org.apache.commons.lang.StringUtils ; StringUtils方法的操作对象是java.lan ...
- StringUtils中 isEmpty 和isBlank的区别
StringUtils方法的操作对象是java.lang.String类型的对象,是JDK提供的String类型操作方法的补充,并且是null安全的(即如果输入参数String为null则不会抛出Nu ...
- org.apache.commons.lang.StringUtils中isEmpty和isBlank的区别
public static boolean isEmpty(String str) 判断某字符串是否为空,为空的标准是str==null或str.length()==0 StringUtils.isE ...
- StringUtils 中 isEmpty 和 isBlank 的区别
在项目的工作学习中经常用到了 apache commons 中的 StringUtils 的 isBlank 和 isEmpty 来判断字符串是否为空,这个方法都是判断字符串是否为空做判断的,以至于 ...
- StringUtils里的isEmpty和isBlank的区别
这边首先以一个简单的测试代码来解释这两者的区别: @Test void stringTest(){ String a = " "; boolean empty = StringUt ...
- org.apache.commons.lang3.StringUtils类中isBlank和isEmpty方法的区别
相信很多java程序员在写代码的时候遇到判断某字符串是否为空的时候会用到StringUtils类中isBlank和isEmpty方法,这两个方法到底有什么区别呢?我们用一段代码来阐述这个区别吧: @T ...
- java判断一个字符串是否为空,isEmpty和isBlank的区别
转载于:https://blog.csdn.net/liusa825983081/article/details/78246792 实际应用中,经常会用到判断字符串是否为空的逻辑 比较简单的就是用 S ...
随机推荐
- 如何获取JMX监控WebSphere所需的com.ibm.ws.admin.client_8.5.0等jar包
https://blog.csdn.net/weixin_38645718/article/details/83346007
- TensorFlow queue多线程读取数据
一.tensorflow读取机制图解 我们必须要把数据先读入后才能进行计算,假设读入用时0.1s,计算用时0.9s,那么就意味着每过1s,GPU都会有0.1s无事可做,这就大大降低了运算的效率. 解决 ...
- 空指针null
Java中,null是一个关键字,用来标识一个不确定的对象.因此可以将null赋给引用类型变量,但不可以将null赋给基本类型变量 Java默认给变量赋值:在定义变量的时候,如果定义后没有给变量赋值, ...
- C#编程语法积累(二)
9.Lambda表达式 [1]Lambda表达式缩写推演,如下图: [2]Lambda语句:=>右边有一个语句块(大括号"{}"):Lambda表达式:=>右边只有一个 ...
- Python 动态生成多个变量
引用自:https://blog.csdn.net/u013061183/article/details/78015673 用Python循环创建多个变量, 如创建 a1= .a2= .a3= ...
- Scala入门教程---《chang哥教你一天搞定Scala》
<chang哥教你一天搞定Scala> /** * <chang哥教你一天搞定Scala> * scala是一门多范式编程语言,集成了面向对象编程和函数式编程等多种特性. * ...
- Android应用开发-网络编程(二)
Apache HttpClient框架 GET方式请求提交数据 1. 创建一个HttpClient HttpClient hc = new DefaultHttpClient(); 2. 创建一个Ht ...
- BZOJ.4653.[NOI2016]区间(线段树)
BZOJ4653 UOJ222 考虑二分.那么我们可以按区间长度从小到大枚举每个区间,对每个区间可以得到一个可用区间长度范围. 我们要求是否存在一个点被这些区间覆盖至少\(m\)次.这可以用线段树区间 ...
- node+koa2获取请求参数
1.get方式: http://localhost:3000/?user=000001&body=0002&age=26 const router = require('koa-rou ...
- mysql的密码忘记了怎么办
我们的大脑不是电脑,有些东西难免会忘,但是会了这个再也不担心宝宝忘记密码了 (1)点击开始/控制面板/服务/mysql-->右击mysql看属性,里面有mysql的安装地址,然后找到安装地址进行 ...