String.split函数

来源:互联网 发布:cr2怎么转换成jpg mac 编辑:程序博客网 时间:2024/05/18 19:44

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

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/

0 0
原创粉丝点击