java中对长字符串的各种截取

1. 使用split("正则表达式")来分割字符串,返回字符串数组

因为分析正则比较耗时,所以这种方式会有很大的性能损耗。

例:String s = "asd,123,qw12,as22";

String[] result = s.split(",");

for(int i=0;i<result.length;i++){

System.out.println("结果:"+result[i].toString());

}

运行结果:结果:asd

123

aw12

as22

 

 

2. 使用subString()方法来截取字符串,返回字符串

通过不同的参数来控制截取方式

 

2.1 传入一个索引值a(int)

返回从索引值a位置开始(包括a)到被截取字符串末尾的字符串(索引值从0开始)

例:String s = "asdqweasdqwe";

System.out.println("结果:"+s.subString(3));

运行结果:结果: qweasdqwe

 

2.2 传入两个索引值a,b(int)

返回从索引值a开始(包括a)到索引值b结束(不包括b)的字符串(索引值从0开始)

例:String s = "asdqweasdqwe";

System.out.println("结果:"+s.subString(2,6));

运行结果:结果:dqwe

 

 

3.使用StringUtils提供的方法(常用所在包:commons-long3-3.4.jar)

StringUtils中subString()方法与 2 中描述的基本一致,其中多一个参数为被截取字符串

即:StringUtils(被截取字符串,起始位置,结束位置);

注意:当截取位置为非负数时,从左往右开始截取,第一位为0,但当索引值为负数时,则从右往左截取,此时右侧第一位为-1;

下面介绍其它几种截取方法。

 

3.1 subStringBefore(a,b) 截取字符串a中第一个b之前的内容(不包括b)

StringUtils.subStringBefore("qweasdqweasd","s"); 结果:qwea

 

3.2 subStringBeforeLast(a,b) 截取字符串a中最后一个b之前的内容(不包括b)

StringUtils.subStringBeforeLast("qweasdqweasd","s"); 结果:qweasdqwea

 

3.3 subStringAfter(a,b) 截取字符串a中第一个b之后的内容(不包括b)

StringUtils.subStringAfter("qweasdqweasd","s") 结果:dqweasd

 

3.4 subStringAfterLast(a,b) 截取字符串a中最后一个b之后的内容(不包括b)

StringUtils.subStringAfterLast("qweasdqweasd","s") 结果:d

 

3.5 subStringBetween(a,b) 截取指定标记字符串之间的字符序列

StringUtils.subStringBetween("qweasdqweasd","qwe") 结果:asd

 

注意:若被截取的字符串为null或" ",则截取后返回的结果也为null或" "

 

关于StringUtils工具类的其它运用,如对字符串的判空、转换、移除、替换、反转、去除空白、包含、查询索引等等,请参考:

https://www.cnblogs.com/guiblog/p/7787569.html

https://www.cnblogs.com/guiblog/p/7986410.html

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值