StringUtils
是 Apache Commons Lang 库中的一个实用工具类,提供了一系列静态方法来处理字符串。这些方法可以帮助你更方便地进行字符串的空值检查、拼接、截取、替换等操作。下面详细解释 StringUtils
的常用方法及其在代码中的应用。
导入 StringUtils
首先,你需要在项目中引入 Apache Commons Lang 库。如果你使用 Maven,可以在 pom.xml
文件中添加以下依赖:
<dependency><groupId>org.apache.commons</groupId><artifactId>commons-lang3</artifactId><version>3.12.0</version>
</dependency>
常用方法
以下是 StringUtils
中一些常用的静态方法及其功能:
-
isEmpty(String str)
:- 作用:判断字符串是否为
null
或者长度为 0。 - 示例:
boolean isEmpty = StringUtils.isEmpty(null); // true boolean isEmpty2 = StringUtils.isEmpty(""); // true boolean isEmpty3 = StringUtils.isEmpty("abc"); // false
- 作用:判断字符串是否为
-
isNotEmpty(String str)
:- 作用:判断字符串是否不为
null
且长度不为 0。 - 示例:
boolean isNotEmpty = StringUtils.isNotEmpty(null); // false boolean isNotEmpty2 = StringUtils.isNotEmpty(""); // false boolean isNotEmpty3 = StringUtils.isNotEmpty("abc"); // true
- 作用:判断字符串是否不为
-
isBlank(String str)
:- 作用:判断字符串是否为
null
或者只包含空白字符。 - 示例:
boolean isBlank = StringUtils.isBlank(null); // true boolean isBlank2 = StringUtils.isBlank(""); // true boolean isBlank3 = StringUtils.isBlank(" "); // true boolean isBlank4 = StringUtils.isBlank("abc"); // false
- 作用:判断字符串是否为
-
isNotBlank(String str)
:- 作用:判断字符串是否不为
null
且不只包含空白字符。 - 示例:
boolean isNotBlank = StringUtils.isNotBlank(null); // false boolean isNotBlank2 = StringUtils.isNotBlank(""); // false boolean isNotBlank3 = StringUtils.isNotBlank(" "); // false boolean isNotBlank4 = StringUtils.isNotBlank("abc"); // true
- 作用:判断字符串是否不为
-
trim(String str)
:- 作用:去除字符串两端的空白字符。
- 示例:
String trimmed = StringUtils.trim(" abc "); // "abc"
-
trimToNull(String str)
:- 作用:去除字符串两端的空白字符,如果结果为空字符串,则返回
null
。 - 示例:
String trimmed = StringUtils.trimToNull(" abc "); // "abc" String trimmed2 = StringUtils.trimToNull(" "); // null
- 作用:去除字符串两端的空白字符,如果结果为空字符串,则返回
-
trimToEmpty(String str)
:- 作用:去除字符串两端的空白字符,如果结果为
null
,则返回空字符串。 - 示例:
String trimmed = StringUtils.trimToEmpty(" abc "); // "abc" String trimmed2 = StringUtils.trimToEmpty(null); // ""
- 作用:去除字符串两端的空白字符,如果结果为
-
join(Iterable<?> iterable, String separator)
:- 作用:将集合中的元素连接成一个字符串,元素之间用指定的分隔符分隔。
- 示例:
List<String> list = Arrays.asList("a", "b", "c"); String joined = StringUtils.join(list, ","); // "a,b,c"
-
split(String str, String separator)
:- 作用:将字符串按照指定的分隔符拆分成一个数组。
- 示例:
String[] split = StringUtils.split("a,b,c", ","); // ["a", "b", "c"]
-
replace(String str, String searchStr, String replacement)
:- 作用:将字符串中的指定子字符串替换为另一个字符串。
- 示例:
String replaced = StringUtils.replace("abcabc", "a", "A"); // "AbcAbc"
示例代码
假设我们在一个控制器方法中使用 StringUtils
来处理字符串:
import com.itheima.reggie.utils.R;
import org.apache.commons.lang3.StringUtils;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.time.LocalDateTime;@RestController
public class EmployeeController {@PutMapping("/update")public R<String> update(HttpServletRequest request, @RequestBody Employee employee) {log.info(employee.toString());long id = Thread.currentThread().getId();log.info("线程id为:{}", id);Long empId = (Long) request.getSession().getAttribute("employee");if (empId == null) {return R.error("用户未登录");}// 检查用户名是否为空if (StringUtils.isBlank(employee.getName())) {return R.error("用户名不能为空");}// 去除电话号码两端的空白字符employee.setPhone(StringUtils.trimToEmpty(employee.getPhone()));employee.setUpdateTime(LocalDateTime.now());employee.setUpdateUser(empId);employeeService.updateById(employee);return R.success("员工信息修改成功");}
}
详细解释
-
导入
StringUtils
:import org.apache.commons.lang3.StringUtils;
:导入StringUtils
类。
-
检查用户名是否为空:
if (StringUtils.isBlank(employee.getName())) {
:- 作用:使用
StringUtils.isBlank
方法检查employee
对象的name
属性是否为空或只包含空白字符。 - 返回值:如果
name
为空或只包含空白字符,返回一个错误响应。
- 作用:使用
-
去除电话号码两端的空白字符:
employee.setPhone(StringUtils.trimToEmpty(employee.getPhone()));
:- 作用:使用
StringUtils.trimToEmpty
方法去除employee
对象的phone
属性两端的空白字符。如果phone
为null
,则返回空字符串。 - 返回值:将处理后的电话号码设置回
employee
对象。
- 作用:使用
总结
StringUtils
是一个非常有用的工具类,提供了许多静态方法来处理字符串。通过使用 StringUtils
,你可以更方便地进行字符串的空值检查、拼接、截取、替换等操作,从而使代码更加简洁和易读。