• java split教程


    还是老样子,废话不多说,这里直接讲代码,后面讲故事。

    第一章 代码实现

    1、直接调用split方法,如果没有效果,带上英文的中括号就可以了。当然也可以使用两个\\来替换。效果是一样的。

    1. public static void main(String[] args) {
    2. // 特殊符号【+】,【|】,【*】,【.】,【?】,【$】
    3. // 上面这6种特殊符号在split方法中会失效
    4. // 处理办法就是加上英文的中括号[]
    5. String text = "dd|cc|aa";
    6. String splitStr = "|";
    7. String[] texts = text.split(splitStr);
    8. // 由于没有做特殊处理,所以这里的结果是错误的
    9. // 由于没有做特殊处理,所以这里的结果是错误的
    10. // 由于没有做特殊处理,所以这里的结果是错误的
    11. log.info("texts={}",Arrays.asList(texts));
    12. // ------------------下面的结果都是正常的,随便选择一种方法
    13. // ------------------下面的结果都是正常的,随便选择一种方法
    14. // ------------------下面的结果都是正常的,随便选择一种方法
    15. // 这里加上英文的中括号,就正常了
    16. splitStr = "[|]";
    17. texts = text.split(splitStr);
    18. log.info("texts 加上英文中括号结果={}",Arrays.asList(texts));
    19. text = "馒头*面包*方便面";
    20. // 这里加上英文的中括号,就正常了
    21. splitStr = "[*]";
    22. texts = text.split(splitStr);
    23. log.info("texts 加上英文中括号结果={}",Arrays.asList(texts));
    24. text = "172.168.100.110";
    25. // 这里加上英文的中括号,就正常了
    26. splitStr = "[.]";
    27. texts = text.split(splitStr);
    28. log.info("texts 加上英文中括号[.]结果={}",Arrays.asList(texts));
    29. // 这里使用两个英文的反斜杠转义为特殊字符点,就正常了
    30. splitStr = "\\.";
    31. texts = text.split(splitStr);
    32. log.info("texts 加上英文两个斜杠\\\\.结果={}",Arrays.asList(texts));
    33. }

    2、控制台的输出结果,如下

    1. 16:06:58.828 [main] INFO cn.renkai721.controller.AsyncTestController - texts=[d, d, |, c, c, |, a, a]
    2. 16:06:58.830 [main] INFO cn.renkai721.controller.AsyncTestController - texts 加上英文中括号结果=[dd, cc, aa]
    3. 16:06:58.830 [main] INFO cn.renkai721.controller.AsyncTestController - texts 加上英文中括号结果=[馒头, 面包, 方便面]
    4. 16:06:58.830 [main] INFO cn.renkai721.controller.AsyncTestController - texts 加上英文中括号[.]结果=[172, 168, 100, 110]
    5. 16:06:58.830 [main] INFO cn.renkai721.controller.AsyncTestController - texts 加上英文两个斜杠\\.结果=[172, 168, 100, 110]
    6. Process finished with exit code 0

    第二章 唠嗑

    1、split方法中的特殊字符一共有6个,分别是【+】,【|】,【*】,【.】,【?】,【$】。大家在使用split的方法时候,是要进行特殊处理的,否则是没有效果的。

    2、还有一种很暴力的方法,就是先replace方法把这些特殊字符转换为普通的符号,例如英文的逗号,在调用split方法就可以了。

    3、查阅split官网的使用规则及操作。大概的翻译如下,以下翻译来自有道翻译。

    此方法返回的数组包含this的每个子字符串

    由另一个匹配给定的子字符串终止的字符串

    表达式或以字符串结尾结束。的子字符串

    数组按照它们在这个字符串中出现的顺序排列。如果

    表达式不匹配输入的任何部分,然后匹配结果数组

    只有一个元素,即这个字符串。

    当在此开头有一个正宽度匹配时

    字符串,则在开头包含一个空的前导子字符串

    结果数组的。然而,一开始是零宽度的匹配

    永远不要产生这样的空前导子字符串。

    参数{@code limit}控制

    模式被应用,因此影响结果的长度

    数组中。如果极限n大于零,则模式

    将被应用最多n1次,数组的

    长度将不大于n,以及数组的最后一个条目

    将包含最后一个匹配的分隔符以外的所有输入。如果n <我> < / i >

    那么是非正的模式会被应用多少次

    可能的和数组可以有任何长度。如果n为零,那么

    该模式将被应用尽可能多的次数,数组可以

    如果有任何长度,那么后面的空字符串将被丢弃。

    例如,字符串{@code "boo:and:foo"}将生成

    以下是带有这些参数的结果:

  • 相关阅读:
    【公益案例展】 网易“双碳”智控系统——开源开放赋能绿色发展
    Kotlin 核心语法,为什么选择Kotlin ?
    小米汽车超级工厂智能物流
    阿里老大哥十年开发经验总结的“SpringBoot实战笔记”,一切从底层开讲
    同余和矩阵乘法
    ChatGPT AIGC总结Excel中Vlookup,lookup,xlookup的区别
    react dispatch不生效的坑
    Unity6 URP17使用初探
    java 闭包的用途是什么
    VPS8702 VPSC(源特科技)电源管理(PMIC) 封装SOT23-6
  • 原文地址:https://blog.csdn.net/renkai721/article/details/126726261