Hutool使用指南(二):字符串工具

2024-04-03 00:32

本文主要是介绍Hutool使用指南(二):字符串工具,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

阅读本篇文章大约花费您5分钟!


     今天是Hutool工具的第二篇文章,介绍一下字符串相关的处理方法。字符串工具指cn.hutool.core.util.StrUtil类,其中对String的多种方法进行了封装并且提供了其他方便实用的方法。StrUtil中的方法是静态方法。

从多个字符串中判断是否有空

      这里的空有两层含义:一是null或者“”(空串),二是不可见字符构成的字符串(不可见字符串),比如由空格构成的字符串(“      ”)。针对两种情况Hutool提供了不同的方法来解决。常用的方法如下表所示:

多个字符串判断是否有空

isBlank(CharSequence arg0):boolean

判断字符串是否为null或者””或者是不可见字符串

isEmpty(charSequence arg0):boolean

判断字符串是否为null或者””

hasBlank(CharSequence…arg0):boolean

判断多个字符串中是否有null或者””或者是不可见字符串

hasEmpty(CharSequence…arg0):boolean

判断多个字符串中是否有null或者””

     其中在表单登录时,hasEmpty()方法就可以一展身手了。

     下面看一下示例代码:

public class Test{public static void testStrUtil01() {StrUtil strUtil=new StrUtil();System.out.println("hasEmpty判断多个字符串中是否有null或者\"\":");System.out.println(strUtil.hasEmpty("smart","pig",""));System.out.println("hasBlank判断多个字符串是否有null或者\"\"或者不可见字符:");System.out.println(strUtil.hasBlank("smart","pig","  "));System.out.println(strUtil.isEmpty(" "));System.out.println(strUtil.isBlank(" "));}public static void main(String[] args) {Test.testStrUtil01();/*结果如下:hasEmpty判断多个字符串中是否有null或者"":truehasBlank判断多个字符串是否有null或者""或者不可见字符:truefalsetrue*/}}    

sub方法

      sub()方法相当于subString()方法;

      有三个参数:第一个是截取的字符串,后两个是首尾位置。sub()方法有一个最大的特点就是容错率非常高,并且-1表示最后一个字符,-2表示倒数第二个字符,以此类推。   并且首尾位置也可以颠倒。

     看一个例子就可以完全理解:

public class Test{public static void testStrUtil02() {String testStr="my name is smartPig";String result01=StrUtil.sub(testStr, 0, 4);/*虽然是4-0,但是实际上还是算成0-4*/String result02=StrUtil.sub(testStr, 4, 0);String result03=StrUtil.sub(testStr, -1, 3);String result04=StrUtil.sub(testStr, -4, 3);System.out.println(result01);System.out.println(result02);System.out.println(result03);System.out.println(result04);}public static void main(String[] args) {Test.testStrUtil02();/*结果为:my nmy nname is smartPiname is smar*/}
}

format方法

      format方法类似于JDBC中PreparedStatement中的?占位符,可以在字符串中使用”{}”作为占位符

      看个例子就明白了!   

public class Test{public static void testStrUtil04() {String testStr="{} name is smart{}";String result=StrUtil.format(testStr, "my","Pig");//my对应第一个{},Pig对应第二个{}System.out.println(result);}public static void main(String[] args) {Test.testStrUtil04();/*结果如下:my name is smartPig*/}
}

有了这个方法,就不需要在某些场景辛苦的和参数拼接字符串了。

 

字符串逆序

      Hutool可以很容易的实现字符串逆序。可以使用StrUtil.reverse(String str):String方法。

去除前后缀

      Hutool可以去除字符串的前缀/后缀,这个特点非常适用于去除文件的后缀名。相关方法如下表:

去除前后缀

removeSuffix(CharSequence str, CharSequence suffix)

去除后缀

removeSuffixIgnoreCase(CharSequence str, CharSequence suffix)

去除后缀,忽略大小写

removePrefix(CharSequence str, CharSequence suffix)

去除前缀

removePrefixIgnoreCase(CharSequence str, CharSequence suffix)

去除前缀,忽略大小写

public class Test{public static void testStrUtil06() {String path1="smart.png";String path2="smart.PNg";System.out.println(StrUtil.removeSuffix(path1, ".png"));System.out.println(StrUtil.removeSuffixIgnoreCase(path2,".png"));}public static void main(String[] args) {Test.testStrUtil06();/*去除前后缀结果:smartsmart*/}
}

字符串常量

     Hutool定义了一些字符常量,可以灵活使用。部分常量如下所示:

一些常量

StrUtil.DOT

StrUtil.DOUBLE_DOT

双点

StrUtil.UNDERLINE

下划线

StrUtil.EMPTY

横杠

StrUtil.BACKSLASH

反斜杠

StrUtil.DASHED

破折

StrUtil.BRACKET_END

右中扩号

StrUtil.BRACKET_START

左中括号

StrUtil.COLON

冒号

StrUtil.COMMA

逗号

StrUtil.DELIM_END

右大括号

StrUtil.DELIM_START

左大括号

public class Test{public static void testStrUtil07() {System.out.println(StrUtil.DOT);System.out.println(StrUtil.DOUBLE_DOT);System.out.println(StrUtil.UNDERLINE);System.out.println(StrUtil.EMPTY);System.out.println(StrUtil.BACKSLASH);System.out.println(StrUtil.DASHED);System.out.println(StrUtil.BRACKET_END);System.out.println(StrUtil.BRACKET_START);System.out.println(StrUtil.COLON);System.out.println(StrUtil.COMMA);System.out.println(StrUtil.DELIM_END);System.out.println(StrUtil.DELIM_START);}public static void main(String[] args) {Test.testStrUtil07();/*结果如下:..._\-][:,}{	*/}
}

      今天的字符串相关方法就介绍到这里,下一次会给大家介绍随机工具类的使用方法!

      今天在《码农翻身》一书中看到了这样一句话:凡事必将骑上虎背。不逼自己一次,怎么知道自己真正的实力!也把这句话送给正在努力的各位!希望各位能够不离不弃,勇于坚持,勤于实践!

 

 

这篇关于Hutool使用指南(二):字符串工具的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/871478

相关文章

2025最新版Python3.13.1安装使用指南(超详细)

《2025最新版Python3.13.1安装使用指南(超详细)》Python编程语言自诞生以来,已经成为全球最受欢迎的编程语言之一,它简单易学易用,以标准库和功能强大且广泛外挂的扩展库,为用户提供包罗... 目录2025最新版python 3.13.1安装使用指南1. 2025年Python语言最新排名2.

Redis客户端工具之RedisInsight的下载方式

《Redis客户端工具之RedisInsight的下载方式》RedisInsight是Redis官方提供的图形化客户端工具,下载步骤包括访问Redis官网、选择RedisInsight、下载链接、注册... 目录Redis客户端工具RedisInsight的下载一、点击进入Redis官网二、点击RedisI

基于Python实现一个PDF特殊字体提取工具

《基于Python实现一个PDF特殊字体提取工具》在PDF文档处理场景中,我们常常需要针对特定格式的文本内容进行提取分析,本文介绍的PDF特殊字体提取器是一款基于Python开发的桌面应用程序感兴趣的... 目录一、应用背景与功能概述二、技术架构与核心组件2.1 技术选型2.2 系统架构三、核心功能实现解析

使用Python开发一个图像标注与OCR识别工具

《使用Python开发一个图像标注与OCR识别工具》:本文主要介绍一个使用Python开发的工具,允许用户在图像上进行矩形标注,使用OCR对标注区域进行文本识别,并将结果保存为Excel文件,感兴... 目录项目简介1. 图像加载与显示2. 矩形标注3. OCR识别4. 标注的保存与加载5. 裁剪与重置图像

基于.NET编写工具类解决JSON乱码问题

《基于.NET编写工具类解决JSON乱码问题》在开发过程中,我们经常会遇到JSON数据处理的问题,尤其是在数据传输和解析过程中,很容易出现编码错误导致的乱码问题,下面我们就来编写一个.NET工具类来解... 目录问题背景核心原理工具类实现使用示例总结在开发过程中,我们经常会遇到jsON数据处理的问题,尤其是

Java中有什么工具可以进行代码反编译详解

《Java中有什么工具可以进行代码反编译详解》:本文主要介绍Java中有什么工具可以进行代码反编译的相关资,料,包括JD-GUI、CFR、Procyon、Fernflower、Javap、Byte... 目录1.JD-GUI2.CFR3.Procyon Decompiler4.Fernflower5.Jav

Java对象和JSON字符串之间的转换方法(全网最清晰)

《Java对象和JSON字符串之间的转换方法(全网最清晰)》:本文主要介绍如何在Java中使用Jackson库将对象转换为JSON字符串,并提供了一个简单的工具类示例,该工具类支持基本的转换功能,... 目录前言1. 引入 Jackson 依赖2. 创建 jsON 工具类3. 使用示例转换 Java 对象为

使用Python创建一个能够筛选文件的PDF合并工具

《使用Python创建一个能够筛选文件的PDF合并工具》这篇文章主要为大家详细介绍了如何使用Python创建一个能够筛选文件的PDF合并工具,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下... 目录背景主要功能全部代码代码解析1. 初始化 wx.Frame 窗口2. 创建工具栏3. 创建布局和界面控件4

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

MobaXterm远程登录工具功能与应用小结

《MobaXterm远程登录工具功能与应用小结》MobaXterm是一款功能强大的远程终端软件,主要支持SSH登录,拥有多种远程协议,实现跨平台访问,它包括多会话管理、本地命令行执行、图形化界面集成和... 目录1. 远程终端软件概述1.1 远程终端软件的定义与用途1.2 远程终端软件的关键特性2. 支持的