java中分割字符串总结 - 超级无敌详细版本。不仅要熟悉各种方法还要做到灵活运用。

目录

1.split()

2.indexof()

3.lastIndexOf()

4.substing() 

小技巧


1.split()

 可有两个参数

只有第一个参数,就是以这个符号来分割

例如:

String str="a,b,c";

String[] split=str.split(",");

则 split[0]=a split[1]=b  split[2]=c

两个参数都有的时候,第一个为用来分割的符号,第二个为分割后的数组长度(如果设置的长度大于分割后的长度则以分割的长度为准)。

设置的长度大于分割后的长度            如:

String str  = "s,ssc,add";
System.out.println(str.split(",", 5).length);

输出结果为 3 

设置的长度小于于分割后的长度

String str  = "s,ssc,add";
for (String s1 : str.split(",", 2)) {
    System.out.println(s1);
}

输出结果为

s

ssc,add

2.indexof()

 indexof可有两个参数,返回值是一个索引值。

只有第一个参数,可以为单个字符或者字符串(String)

如:

String str  = "sscaddss";
int c1 = str.indexOf("s");
System.out.println(c1);

输出为 0 (为第一个s的索引值)

int c2 = str .indexOf("ss");

System.out.println(c2);

输出为 0

有两个参数,第二个参数代表从哪个索引开始查找。

String str = "sscaddss";
int c = str.indexOf("s",1); 代表从索引1开始查找,返回第一个s在整个字符串str里面的索引值
System.out.println(c);

输出为 1      

indexof(int ch)这个用法是indexof里面稍微难理解一点的用法。

先copy一段文字

String 类中的indexof(int ch)方法的形参列表为什么采用int型而不采用char型?
涉及到了增补字符,因为char型只有65536个字符,不能表示完所有的字符还有一些诸如"火星文"的未知字符,因此用char型来表示是完全不够的,而int类型的范围是- 2 ^ 31 ~2 ^ 31 - 1,足够用来表示已知和未知的字符,并且int跟char海涉及到隐式字符转换,这样用int作为形参不仅没有多费功夫还扩大了indexof的涵盖范围。
————————————————
版权声明:本文为CSDN博主「java小马达」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_49022755/article/details/111451875

indexof(int ch)这里传入的int是一个ASCII码,ASCII码转为字符后再去查找,返回也是索引

如:

String str = "sscaddss";
int c = str.indexOf(115);  s的ASCII码为115 和 str.indexOf("s")一样
System.out.println(c);

输出为 0

3.lastIndexOf()

用法、参数的意思和indexOf()一样,只是lastIndexOf()是从后往前,最后一个字符的索引为0。

4.substing() 

substring(int beginIndex) :  返回从beginIndex开始后面所有的字符

如:

String str = "sscaddss";
String substring = str.substring(3);
System.out.println(substring);

输出 addss

substring(int beginIndex,int endIndex) : 返回在beginIndex和endIndex之间的字符,包括beginIndex不包括endIndex

String str = "sscaddss";
String substring = str.substring(3,7);
System.out.println(substring);

输出为adds

小技巧

如果要在字符串中取出特定一部分,可以结合indexof和substring。

如:取出[ student:{"name":"pjy","score":88}]中的 "score" : 88

String str = "[ student:{\"name\":\"pjy\",\"score\":88}]";
String substring = str.substring(str.indexOf("\"score\""), str.indexOf("88")+2);
//为啥+2可阅读本文第四点。
System.out.println(substring);

 

 

  • 15
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

NoBug.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值