subString与split区别

         最近在写项目的时候涉及到了字符串的切割,开始自己使用的时候没有怎么放在心上,但是当我用split来切割这个点号的时候,发现切割不了,获取的是空数组(split要想对点进行切割得加转义字符),所以就去特意查询了一下相关的资料,这里只是单纯的记录一下。

subString与split区别:

subString切割后返回一个字符串,split切割后返回一个字符串数组。

并且二者的传递的参数还是有区别的,sbstring的参数中可以自己传各种符合不用进行转义,但是split的参数中对一些特殊符号的分割需要进行转义,否则获取到的就是空数组。

直接看demo案例:

package demo1;

import java.util.Arrays;

public class SubStringOrSplitTest {
    public static void main(String[] args) {

        String fileName = "test.png";

        String[] split1 = fileName.split("."); //获取到的数组是空,而且idea也是会提醒的  调用“split()”时可疑的正则表达式“.”
        for (String s : split1) {
            System.out.println(s);
        }
        System.out.println("------------------");

        String[] split2 = fileName.split(",");
        for (String s : split2) {
            System.out.println(s);//获取到的test.png
        }

        System.out.println("------------------");

        String[] split3 = fileName.split("\\.");  //使用转义符号就可以使用点进行切割了
        for (String s : split3) {
            System.out.println(s);
        }  //输出结果  test  png

        //如果用“|”作为分隔的话,必须是如下写法:使用split对字符串进行切割会出现很多意向不到的结果,所以使用的时候一定要自己写案例测试成功后再写到项目中
        //String.split("\\|"),这样才能正确的分隔开,不能用String.split("|");

        System.out.println("------------------");

        String fileName2 = "test1.txt,test2.txt,test3.txt";
        String[] split4 = fileName2.split(",");  //这个就可以切割出来 因为,不用进行转义
        for (String s : split4) {
            System.out.println(s); // 输出 test1.txt   test2.txt   test3.txt"
        }

        System.out.println("------------------");
        String[] split5 = fileName2.split(",", 2);  //会以,为分割好,把字符串切割成两份
        for (String s : split5) {
            System.out.println(s); // 输出test1.txt    test2.txt,test3.txt"
        }

        System.out.println("------------------");
        String substring = fileName.substring(fileName.lastIndexOf("."));
        System.out.println(substring); //输出.png

        String substring1 = fileName.substring(fileName.lastIndexOf(".") + 1);
        System.out.println(substring1); //输出png

    }
}

测试结果:

猜你喜欢

转载自blog.csdn.net/weixin_53142722/article/details/127036315