前两篇博文简单分享了一下数字工具类,现在说说字符串工具类。
相信大家都自己封装过或者用过guava封装的Strings,但是有没有可以智能截取,比如说“截取整数第二个到倒数第二个”的字符串。你是否还需要自己写str.substring(1,str.length()-2)。如果是的话,请继续往下看吧。暂时还未见过可以反向截取字符串的。一般都是substring(str, start, end)或者substring(str, len);而这里的参数都必须是正数,否则就会报错。所以为了改善这些方法,我简单封装了一下substring这个方法,提供了4种最常用的方法:
- subStrStart(String str, int end),正向截取
- subStrEnd(String str, int start),反向截取
- subStr(String str, int length),支持双向截取,length>0正向截取,<0,反向截取
- subStr(String str, int start, int end),支持双向截取,start、length>0正向截取,<0,反向截取。
具体代码如下:
public static String subStrStart(String str, int end){ return subStr(str, 0, end); } public static String subStrEnd(String str, int start){ return subStr(str, str.length()-start, str.length()); } public static String subStr(String str, int length) throws RuntimeException{ if(str==null){ throw new NullPointerException("字符串为null"); } int len = str.length(); if(len<Math.abs(length)){ throw new StringIndexOutOfBoundsException("最大长度为"+len+",索引超出范围为:"+(len-Math.abs(length))); } if(length>=0){ return subStr(str, 0,length); }else{ return subStr(str, len-Math.abs(length), len); } } public static String subStr(String str, int start, int end) throws RuntimeException{ if(str==null){ throw new NullPointerException(""); } int len = str.length(); int s = 0;//记录起始索引 int e = 0;//记录结尾索引 if(len<Math.abs(start)){ throw new StringIndexOutOfBoundsException("最大长度为"+len+",索引超出范围为:"+(len-Math.abs(start))); }else if(start<0){ s = len - Math.abs(start); }else if(start<0){ s=0; }else{//>=0 s = start; } if(len<Math.abs(end)){ throw new StringIndexOutOfBoundsException("最大长度为"+len+",索引超出范围为:"+(len-Math.abs(end))); }else if (end <0){ e = len - Math.abs(end); }else if (end==0){ e = len; }else{//>=0 e = end; } if(e<s){ throw new StringIndexOutOfBoundsException("截至索引小于起始索引:"+(e-s)); } return str.substring(s, e); }
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
软考中级精品资料免费领
- 历年真题答案解析
- 备考技巧名师总结
- 高频考点精准押题
- 资料下载
- 历年真题
193.9 KB下载数265
191.63 KB下载数245
143.91 KB下载数1142
183.71 KB下载数642
644.84 KB下载数2755
相关文章
发现更多好内容猜你喜欢
AI推送时光机Java常用字符串工具类 字符串智能截取(3)
后端开发2023-05-31
java中如何使用substring截取字符串
后端开发2023-08-24
JS常用的4种截取字符串方法
后端开发2023-02-05
SQLServer中常用截取字符串函数介绍
后端开发2024-04-02
java字符串与日期类型转换的工具类
后端开发2023-05-30
js常用的截取字符串方法有哪些
后端开发2023-08-29
Oracle中字符串截取常用方法总结【推荐】
后端开发2024-04-02
java中字符串截取的应用场景有哪些
后端开发2023-09-22
Java常用类之字符串相关类使用详解
后端开发2022-11-13
Java日期工具类操作字符串Date和LocalDate互转
后端开发2024-04-02
Java实现产生随机字符串主键的UUID工具类
后端开发2023-05-30
如何在Java中使用substring()函数截取子字符串
后端开发2023-06-08
Java怎么实现的文本字符串操作工具类实例
后端开发2023-05-30
Java使用正则表达式截取重复出现的XML字符串功能示例
后端开发2023-05-31
咦!没有更多了?去看看其它编程学习网 内容吧