StringUtils 工具类的用法

简介: StringUtils 工具类的用法

/1.字符串以prefix开始/
StringUtils.startsWith("sssdf","");//结果是:true
StringUtils.startsWith("sssdf","");//结果是:true
StringUtils.startsWith("sssdf","s");//结果是:true
StringUtils.startsWith("sssdf","ss");//结果是:true
StringUtils.startsWith("sssdf","sss");//结果是:true
StringUtils.startsWith("sssdf","sssdf");//结果是:true
StringUtils.startsWith("sssdf","f");//结果是:false
StringUtils.startsWith("sssdf","sssdf");//结果是:true

/2.字符串以prefix开始,不区分大小写/
StringUtils.startsWithIgnoreCase("sssdf","Sssdf");//结果是:true

/3.字符串以数组中的字符串开始/
StringUtils.startsWithAny("aabcde",newString[]{"g","f"});//结果是:false
StringUtils.startsWithAny("aabcde",newString[]{"g","a"});//结果是:true

/4.字符串以suffix结束/
StringUtils.endsWith("aabcde","d");//结果是:false
StringUtils.endsWith("aabcde","e");//结果是:false
StringUtils.endsWithIgnoreCase("","");//结果是:false

/5.替换字符串:把text中的searchString替换成replacement,max是最大替换次数,默认是替换所有/
StringUtils.replaceOnce("sshhhss","ss","p");//只替换一次-->结果是:phhhss
StringUtils.replace("sshhhs","ss","p");//全部替换--->结果是:phhhs
StringUtils.replace("sshhhsshss","ss","7777",2);//max:最大替换次数-->结果是:7777hhh7777hss
StringUtils.replaceChars("sshhhs","ss","p");//替换所有字符,区别于replace--->结果是:pphhhp而不是pphhhs

/6.按照数组进行替换,位置要匹配,数组长度要相等;暂时没发现下面replaceEach和replaceEachRepeatedly二者的区别/
StringUtils.replaceEach("www.baidu.com",newString[]{"baidu","com"},newString[]{"taobao","net"});//结果是:www.taobao.net
StringUtils.replaceEach("www.baidu,baidu.com",newString[]{"baidu","com"},newString[]{"taobao","net"});//结果是:www.taobao,taobao.net
StringUtils.replaceEachRepeatedly("www.baidu.com",newString[]{"baidu","com"},newString[]{"taobao","net"});//结果是:www.taobao.net

/7.比较两个字符串是否相等,如果两个均为null,则也认为相等/
StringUtils.equals("","");//结果是true
StringUtils.equals(null,null);//结果是true
StringUtils.equals("",null);//结果是false
StringUtils.equals(null,"");//结果是false
StringUtils.equalsIgnoreCase("ss","Ss");//不区分大小写--结果是true

/8.返回searchChar在字符串中第一次出现的位置,如果searchChar没有在字符串中出现,则返回-1/
StringUtils.indexOf("sdfsfsfdsf","4");/结果是-1/
StringUtils.indexOf("sdfsfsfdsf","f");/结果是2/

//查找searchChar在字符串中最后一次出现的索引*/
StringUtils.lastIndexOf("aFkyk","k");//结果是4
StringUtils.lastIndexOf("aFkyk","");//结果是1

/9.找出字符数组searChars第一次出现在字符串中的位置/
StringUtils.indexOfAny("sdsfhhl0","f");//结果是3
StringUtils.indexOfAny("sdsfhhl0",newString[]{"f","0"});//结果是3
StringUtils.indexOfAny("sdsfhhl0",newString[]{"t","j"});//结果是-1
StringUtils.indexOfAny("sdsfhhl0",newString[]{"t","j",""});//结果是3
StringUtils.lastIndexOfAny("aFkyk",newString[]{"aFkyk","k"});//找出字符数组searChars最后一次出现在字符串中的位置--结果是5

/*10.找出字符串中不在字符数组searchars中的第一个字符出现的位置(从0位开始)
*如果都在,返回-1
**/
StringUtils.indexOfAnyBut("sdsfhhl0","h");//结果是0
StringUtils.indexOfAnyBut("sdsfhhl0","s");//结果是1
StringUtils.indexOfAnyBut("aa","aa");//结果是-1

/11.统计参数1和参数2开始部分共有的字符个数/
StringUtils.indexOfDifference("sdsfdsf","s");//结果是1
StringUtils.indexOfDifference(newString[]{"sdsfdsf","s"});//结果是1

/12.去掉参数2在参数1开始部分共有的字符串/
StringUtils.difference("灌灌灌灌","灌灌灌灌啊啊");//结果是:啊啊

/13.查找,不区分大小写,没有找到返回-1/
StringUtils.indexOfIgnoreCase("aFabbSSdd","f");//返回1
StringUtils.indexOfIgnoreCase("aFabbSSdd","f",2);//从指定位置开始查找,不区分大小写--返回-1
StringUtils.indexOfIgnoreCase("aFabbSSdd","f",1);//返回1
StringUtils.lastIndexOfIgnoreCase("","");
StringUtils.lastIndexOfIgnoreCase("","",2);

/14.截取指定位置的字符串/
StringUtils.substring("dskabcee",3);
/结果是:abcee/

StringUtils.substring("dskabcee",3,5);
/结果是:ab/

/15.截取指定字符串之前的内容/
StringUtils.substringBefore("dskeabcee","e");
/结果是:dskeabce/

StringUtils.substringBeforeLast("dskeabcee","e");//一直找到最后一个指定的字符串
/结果是:dskeabce/

StringUtils.substringAfter("dskeabcedeh","");
/结果是:dskeabcedeh/

StringUtils.substringAfterLast("dskeabcedeh","");
/结果是:/

/16.截取参数2和参数3中间的字符/
StringUtils.substringBetween("dskeabcedeh","ds");
/结果是:null/
StringUtils.substringBetween("dskeabcedeh","ds","e");
/结果是:k/
StringUtils.substringsBetween("dskeabcedeh","ds","e");//以数组方式返回参数2和参数3中间的字符串
/结果是:[keabce]/

/1.分割字符串,可以设定得到数组的长度,但一般情况下不要设定,这样会发生冲突/
StringUtils.split("y5y,4454,545");//默认是按,来分割
StringUtils.split("aaaa#sss","#");
/结果是:[aaaa,sss]/

StringUtils.split("aaaa#sss#","#",2);

/2.按不同类型进行分割字符串/
StringUtils.splitByCharacterType("aa3444张三Bcss");
/结果是:[aa,3444,张三,a,B,css,B]/

StringUtils.splitByCharacterTypeCamelCase("");
/结果是:[aa,3444,张三,a,Bcss,B]/

/3.分割字符串,""不会被忽略,可以设置分割字符串的数组长度/
StringUtils.splitByWholeSeparator("aaaa#sss#","#");//""不会被忽略
/结果是:[aaaa,sss,]StringUtils.split结果是:[aaaa,sss]/

StringUtils.splitByWholeSeparator("aaaa#sss#ggg","#");//
/结果是:[aaaa,sss,ggg]/

StringUtils.splitByWholeSeparator("aaaa#sss#ggg","");//按空格分割
/结果是:[aaaa#,sss#ggg]/

StringUtils.splitByWholeSeparator("aaaa#sss#","#",2);//2设定返回数组的最大长度
/结果是:[aaaa,sss#]/

/4.分割字符串,""不会被忽略,可以设置分割字符串的数组长度/
StringUtils.splitByWholeSeparatorPreserveAllTokens("sddssfsfasfsaf",null);
/结果是:[sddssf,sfasfsaf,]/

StringUtils.splitByWholeSeparatorPreserveAllTokens("sddssfsfasfsaf","");
/结果是:[sddssf,sfasfsaf,]/

/5.同上/
StringUtils.splitPreserveAllTokens("");
StringUtils.splitPreserveAllTokens("","");
StringUtils.splitPreserveAllTokens("","",3);

目录
相关文章
|
移动开发 安全 前端开发
分享97个社区论坛PHP源码,总有一款适合你
分享97个社区论坛PHP源码,总有一款适合你
4328 0
|
网络协议 NoSQL 关系型数据库
【宝塔部署PHP项目】含域名访问部署、IP访问部署、数据库、端口号、Nginx等知识
【宝塔部署PHP项目】含域名访问部署、IP访问部署、数据库、端口号、Nginx等知识
5796 0
【宝塔部署PHP项目】含域名访问部署、IP访问部署、数据库、端口号、Nginx等知识
|
Web App开发 XML Java
SpringMVC使用MultipartResolver和MultipartFile实现文件上传
SpringMVC使用MultipartResolver和MultipartFile实现文件上传
2080 0
|
5月前
|
人工智能 Linux API
OpenClaw(Clawdbot)保姆级部署手册:阿里云无影云电脑+本店多系统搭建+免费大模型配置指南
2026年,OpenClaw(Clawdbot)作为基于MIT开源协议的本地优先AI智能体执行网关,凭借“能听懂指令、能动手执行”的核心优势,成为个人与中小企业实现AI自动化落地的优选工具。与传统对话式AI不同,OpenClaw更像是“能直接上手干活的员工”,无需手动干预即可完成文件管理、网页自动化、任务编排等全流程操作,真正实现“指令一出,万事落地”。
835 0
|
11月前
|
机器学习/深度学习 数据采集 搜索推荐
企业大数据的“超级大脑”:AIIData数据中台
杭州奥零数据科技有限公司成立于2023年,专注于数据中台业务,维护开源项目AllData并提供商业版解决方案。AllData提供数据集成、存储、开发、治理及BI展示等一站式服务,支持AI大模型应用,助力企业高效利用数据价值。
企业大数据的“超级大脑”:AIIData数据中台
|
Java 数据库连接 mybatis
成功解决:java.lang.Integer cannot be cast to java.lang.Long
这篇文章讨论了Java中常见的类型转换错误,包括Integer转Long、Integer转String以及在MyBatis中Map接收查询结果时的类型不匹配问题,并提供了相应的解决方法。
|
机器学习/深度学习 算法 数据可视化
使用Python实现深度学习模型:智能食品配送优化
使用Python实现深度学习模型:智能食品配送优化
587 2
java判断两个时间是不是同一天的方法、Java中判断是否是当天时间
这篇文章提供了两种Java中判断两个时间是否为同一天的方法:一种是使用Calendar类比较年、月、日,另一种是使用SimpleDateFormat类将日期格式化为"yyyyMMdd"格式后进行字符串比较。
java判断两个时间是不是同一天的方法、Java中判断是否是当天时间
|
并行计算 开发工具 异构计算
在Windows平台使用源码编译和安装PyTorch3D指定版本
【10月更文挑战第6天】在 Windows 平台上,编译和安装指定版本的 PyTorch3D 需要先安装 Python、Visual Studio Build Tools 和 CUDA(如有需要),然后通过 Git 获取源码。建议创建虚拟环境以隔离依赖,并使用 `pip` 安装所需库。最后,在源码目录下运行 `python setup.py install` 进行编译和安装。完成后即可在 Python 中导入 PyTorch3D 使用。
2010 0
|
安全 网络协议 数据挖掘
在Linux中,如何进行网络抓包?
在Linux中,如何进行网络抓包?