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

    }
}

测试结果:

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值