String.split函数

首先看一下在线文档中的语法:

1.String[] split(String regex)
2.String[] split(String regex, int limit)
参数regex是分割的标记字符串
参数limit是最大分割数,相当于分割之后,String数组的维数

下面通过例子来了解使用方法

ex1:

public class Solution {
    public static void main(String[] args)
    {
        String ex = "1,2,3,4,5";
        String[] res = ex.split(",");
        for(int i=0;i<res.length;i++)
            System.out.println(res[i]);
    }
}

输入:”1,2,3,4,5” 分割字符为”,”
输出:
1
2
3
4
5

ex2:

public class Solution {
    public static void main(String[] args)
    {
        int limit = 3;
        String ex = "1,2,3,4,5";
        String[] res = ex.split(",",limit);
        for(int i=0;i<res.length;i++)
            System.out.println(res[i]);
    }
}

输出:
1
2
3,4,5
我们可以看到只有limit=3组输出

Caution:
今天在刷题的时候,用到了split函数,输入是类似”1.2.3”这种以”.”为分隔符的字符串,我是这样调用split函数的

ex3:

String in = "1.2.3";
String[] temp = in.split(".");

输出:(空)
调试的时候发现temp是一个空集,并不是想象中的分成三组分别包含”1”,”2”,”3”字符串的String数组。

上网查阅发现,regex,即regular expression(正则表达式),这个并不是一个简单的分割用的字符,而是正则表达式,我们看下split方法的实现代码:

public String[] split(String regex,int limit)
{
return pattern.compile(regex).split(this,limit);
}

split的实现是直接调用的matcher类的split的方法。而”.”在正则表达式忠有特殊的含义,所以我们使用的时候必须进行转义。
ex4:

String in = "1.2.3";
String[] temp = in.split("\\."); //在.之前加双斜杠就可以了!

如此操作,就能得到正确的输出

同样的,对于“|”,“*”,“+”都得加上转义字符“\”。
如果是“\”,那么就得写成“\\”。
如果一个字符串中有多个分隔符,可以用“|”作为连字符。

参考资料:http://docs.oracle.com/javase/1.5.0/docs/api/index.html
http://hanhongke123.blog.163.com/blog/static/6222349420114239259352/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值