java中split常用方法

split用来对字符串按某种规则进行分割

stringObj.split (string regex,[int maxSplit] )

regex,regular expression,是正则表达式,功能显然比普通string要强,但是需要了解正则,本人不甚了解。。。

maxSplit为可选项,用来限制返回数组中的元素个数(最大分割数)

其返回值为一字符串数组,通常写法String[] s = stringObj.split ( "a" ) ;

例1:

    String str = "Java string split test";
    String[] s = str.split(" ");
    for (int i = 0; i < strarray.length; i++)
        System.out.println(s[i]);

将输出:
Java
string
split
test


例2:

    String str="Java string split test";
    String[] s = str.split(" ",2);//最多分割成2个字符串
    for (int i = 0; i < s.length; i++)
        System.out.println(s[i]);
将输出:
Java
string split test

可见,从字符串前向后扫描,符合条件即分割,分割到maxSplit数量-1时,字符串后面将不扫描,直接作为字符串数组的最后一个字符串返回。


例3:

    String str="192.168.0.1";
    String[] s = str.split(".");
    for (int i = 0; i < s.length; i++)
        System.out.println(s[i]);
结果是没输出,将split(".")改为split( "\\." ),将得到想要结果:
192
168
0
1

原因为. | + * 等在正则表达式中为特殊字符,所以并不能达到我们预期的效果,要使用\\让其转义变为正常字符。

因为在Java字符串中是用"\\"来表示"\"的,所以如果字符串是这样:String Str="a\\b\\c";实际上字符串为a\b\c,此事要用 \ 作为分隔,就要写成这样:String.split("\\\\"),

其实这个问题有点钻牛角尖了,(本人认为那四个\\\\,前两个是转义的\\,后两个是"a\\b\\c"中的\\,表示的是\) -_-|||本人也不是很明白,待以后深入了解再来辨析。

又如String[] aa = "aaa|bbb|ccc".split("|");是不行的,需要String[] aa = "aaa|bbb|ccc".split("\\|"); 这样才能得到正确的结果。

注意这里讲的全是 \ ,和 / 没关系。


例4:

    String str="Java string-split#test";
    String[] s = str.split(" |-|#");
    for (int i = 0; i < s.length; i++)
        System.out.println(s[i]);
结果为

Java
string
split
test

同样也可以这么使用 String[] s = "a=1 and b=2 or c=3".split( "and|or" );

如果在一个字符串中有多个分隔符,可以用"|"作为连字符。其实都是正则表达式的用法了,没有必要再列举了。

以上为综合一些帖子博客外加自己的一些理解综合而成,希望可以给大家一些启发,以后遇到还会有补充。



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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值