Java常用字符串工具类 字符串智能截取(3)
短信预约 -IT技能 免费直播动态提醒
前两篇博文简单分享了一下数字工具类,现在说说字符串工具类。
相信大家都自己封装过或者用过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
Java常用字符串工具类 字符串智能截取(3)
下载Word文档到电脑,方便收藏和打印~
下载Word文档
猜你喜欢
Java常用字符串工具类 字符串智能截取(3)
前两篇博文简单分享了一下数字工具类,现在说说字符串工具类。相信大家都自己封装过或者用过guava封装的Strings,但是有没有可以智能截取,比如说“截取整数第二个到倒数第二个”的字符串。你是否还需要自己写str.substring(1,s
2023-05-31
java中如何使用substring截取字符串
在Java中,可以使用substring方法来截取字符串。substring方法有两种重载形式:1. substring(int beginIndex):从指定的索引位置开始截取字符串,截取到字符串的末尾。2. substring(int
2023-08-24
JS常用的4种截取字符串方法
在做项目的时候,经常会需要截取字符串,所以常用的方法有slice()、substr()、substring()、match()方法等,下面通过示例代码介绍四个方法的使用,感兴趣的朋友跟随小编一起看看吧
2023-02-05
2024-04-02
java字符串与日期类型转换的工具类
常用的字符串转date,和日期转字符串的方法,具体内容如下package com.cq2022.zago.base.util; import java.text.DateFormat; import java.text.ParseExce
2023-05-30
js常用的截取字符串方法有哪些
JavaScript中常用的字符串截取方法有以下几种:1. `substring(start, end)`:截取字符串的一部分,从索引start开始到索引end结束,包括start索引但不包括end索引。2. `slice(start, e
2023-08-29
2024-04-02
java中字符串截取的应用场景有哪些
Java中字符串截取的应用场景有很多。以下列举了一些常见的应用场景:1. 提取子字符串:从一个较长的字符串中提取出需要的部分。例如提取用户名、邮箱地址等。2. 字符串截断:截取字符串的一部分并替换原来的字符串。例如将一个长文本截断为一定长度
2023-09-22
Java常用类之字符串相关类使用详解
String、StringBuilder、StringBuffer类是Java中常用的三个字符串相关类。本文将通过示例为大家讲解一下他们的用法,需要的可以参考一下
2022-11-13
2024-04-02
Java实现产生随机字符串主键的UUID工具类
这篇文章将为大家详细讲解有关Java实现产生随机字符串主键的UUID工具类,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例讲述了Java实现产生随机字符串主键的UUID工具类。分享给大家供大家参考,
2023-05-30
如何在Java中使用substring()函数截取子字符串
这篇文章给大家介绍如何在Java中使用substring()函数截取子字符串,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。1. substring(int beginIndex) 形式此方式用于提取从索引位置开始至结尾
2023-06-08
Java怎么实现的文本字符串操作工具类实例
这篇文章将为大家详细讲解有关Java怎么实现的文本字符串操作工具类实例,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。本文实例讲述了Java实现的文本字符串操作工具类。分享给大家供大家参考,具体如下:pac
2023-05-30
Java使用正则表达式截取重复出现的XML字符串功能示例
本文实例讲述了Java使用正则表达式截取重复出现的XML字符串功能。分享给大家供大家参考,具体如下:public static void main(String[] args) throws DocumentException { S
2023-05-31
【Java基础教程】(三十三)常用类库篇 · 第三讲:可变字符串支持类——解析 StringBuffer与 StringBuilder类~
Java基础教程之常用类库 · StringBuffer与 StringBuilder类 1️⃣ StringBuffer类1.1 概念1.2 特征1.3 使用 2️⃣ StringBuilder类2.1 概念及特征2.2 使用
2023-08-17