字符串拆分

 public static void main(String[] args) {
        String str = "I Live In The Home";
        String[] ret = str.split(" ");
        for (String x : ret){
            System.out.println(x);
        }
        System.out.println("原来的字符串为:" + str);
        //System.out.println(Arrays.toString(ret));
    }

输出结果为:
在这里插入图片描述
从这里可以看到,本代码是用空格拆分字符串,但是最开始的字符串不会因为字符串的分割而改变(String定义的字符串不会被修改)

注意:
这里要引出一个概念:正则表达式
就比如下面的例子:

   public static void main(String[] args) {
        String str = "192.43.67";
        //想按照“.”来切分
        String[] result = str.split(".");
        for (String x : result){
            System.out.println(x);
        }
    }

以上代码没有执行结果,也就是说split方法在str里面没有找到"."这个字符,我们知道,“.”在正则表达式中是一个特殊字符
,需要进行转义才能识别出来。如下:

   String str = "192.43.67";
        //想按照“.”来切分
       //.在正则表达式中是一种特殊符号,为了让split识别出源字符串中的“.”,就需要进行转意义“\\.”
        String[] result1 = str.split("\\.");
        for (String x : result){
            System.out.println(x);
        }

“\.” 里面有两个反斜杠,代表的两个转义,
一个是在java中进行转义,一个是在正则中表示转义

与之用法相同的符号有:“| + * ”

实际应用

 public static void main(String[] args) {
        //split的实际应用
        String string = "name=zhangsan&age=14&sex=male";
        //1.先按照&进行拆分
        String[] result = string.split("&");
        for (String tmp : result){
            //现在已经按照&拆分好了,开始进行=的拆分
            String[] ret = tmp.split("=");
            if (ret.length != 2){
                continue;
            }
            System.out.println(ret[0] + ": " + ret[1]);
        }
    }
Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐