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 ...
随机推荐
- [转] HTML5利用WebRTC的getUserMedia获取摄像头信息模拟拍照及视频(完整示例)
<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <t ...
- 「BZOJ2882」工艺
题解: 就是个最小表示法 大概做法就是扩大2倍原串 然后双指针比较,如果不相同了直接跳 原理随便画画就知道了
- CSS3常用功能的写法 转
CSS3常用功能的写法 作者: 阮一峰 随着浏览器的升级,CSS3已经可以投入实际应用了. 但是,不同的浏览器有不同的CSS3实现,兼容性是一个大问题.上周的YDN介绍了CSS3 Please网站 ...
- 利用dwebsocket在Django中使用Websocket
一.Websockets介绍 随着互联网的发展,传统的HTTP协议已经很难满足Web应用日益复杂的需求了.近年来,随着HTML5的诞生,WebSocket协议被提出,它实现了浏览器与服务器的全双工通信 ...
- BZOJ4994 [Usaco2017 Feb]Why Did the Cow Cross the Road III 树状数组
欢迎访问~原文出处——博客园-zhouzhendong 去博客园看该题解 题目传送门 - BZOJ4994 题意概括 给定长度为2N的序列,1~N各处现过2次,i第一次出现位置记为ai,第二次记为bi ...
- 8.Django-form组件
1.form组件的校验功能 文件formsdemo models from django.db import models # Create your models here. class UserI ...
- 037 关于pom.xml的一些问题的理解
最近在pom上出了一些问题,搞了一天才理解了一些问题,记录一下. 当在覆盖本地repository包之后,pom.xml上面出现了一个x. 当mvn->update project之后,还是有许 ...
- ubuntu server 18.04 lts 终端中文显示为乱码的解决方案
.最近安装ubuntu server 18.04 lts版本发现系统自带的终端下无论是编辑中文,还是显示中文均出现乱码,还是老毛病, 今天无意中发现通过ssh,远程访问,在windows中安装开源的p ...
- python套接字编程基础
python套接字编程 目录 socket是什么 套接字的工作流程 基于tcp的套接字 基于udp的套接字 socket是什么 客户端/服务器架构(C/S架构) 服务端:提供服务的一端 客户端:请求服 ...
- Linux启动详解
<概述> Linux启动大致分为一下几个步骤,详细的启动步骤在<启动分析>中详解. 1:首先bios加电自检,初始化(这个过程会检测相关硬件(cpu,内存,显卡,硬盘等)) 2 ...