• 字符串处理函数


      1 替换函数

      ① replace 即可以替换字符,也替换 字符串。

    String str1 = "123&123&123&";

    //使用@替换掉字符串里所有的&符
    String result = str1.replace("&", "@");

    //使用abc@ 替换掉 123&
    String result2 = str1.replace("123&", "abc@");

     

    ② replaceall 参数是regex(正则表达式),即基于规则表达式的替换。比如,可以通过replaceAll("\d", "*")把一个字符串所有的数字字符都换成 *

    String str1 = "123&abc&123&";

    //将所有的数字替换成符号 *
    String result = str1.replaceAll("\d", "*");
    System.out.println(result);

    结果:
    ***&abc&***&

     

    //使用正则表达式替换所有空格

    String str2 = "123  &abc  &123&    ";
    String result2 = str2.replaceAll("\s{1,}", "");

    结果:

    123&abc&123&

     

    2 字符串截取函数

    ① substring

    String str3 = "123&abc&123&";
    //从第2位开始截取一直到字符串末尾,不包含第2位
    String result3 = str3.substring(2);

    结果:
    //3&abc&123& 

     

    //从第2位开始截取到第11位,不包含第2位
    String str4 = "123&abc&456&";
    String result4 = str4.substring(2,11);

    结果:

    //3&abc&456

     

    ② StringUtils.substringBefore

    //通过StringUtils提供的方法(org.apache.commons.lang3包下,需要下载commons-lang3 jar包,导入到项目里)
    String str5 = "123&abc&456&";
    //截取到第一个&符之前的所有字符串
    String result5 = StringUtils.substringBefore(str5, "&");
    //123

     

    String str5 = "123&abc&456&";
    //截取到最后一个 & 符之前的所有字符串
    String result6 = StringUtils.substringBeforeLast(str5, "&");
    //123&abc&456

      3 字符串分割函数

      split函数,按指定字符(串)或正则表达式去分割某个字符串,结果以字符串数组形式返回。

       

    String str5 = "123&abc&456&";
    //按照 & 分割字符串
    String[] result5 = str5.split("&");

    for(String str:result5)
    {
      System.out.println(str);
    }

    结果:

    123
    abc
    456

    如果分割字符(串)正好是正则的一部分,则需要转义才能使用,这些字符有 | , + , * , ^ , $ , / , | , [ , ] , ( , ) , - , . , 等, 因它们是正则表达式中的一部分, 所以如果想用该字符本身, 这些字符需要进行转义才能表示它本身。

    案例1:

    //split分割函数
    String str5 = "123*abc*456*";
    //按照 * 分割字符串
    String[] result5 = str5.split("*");
    //123
    for(String str:result5)
    {
      System.out.println(str);
    }

    结果:报错

    Exception in thread "main" java.util.regex.PatternSyntaxException: Dangling meta character '*' near index 0
    *
    ^

    //split分割函数
    String str5 = "123*abc*456*";
    //按照 * 分割字符串,使用转义符才能让程序认为*是一个分隔符,而不是正则表达式
    String[] result5 = str5.split("\*");
    //123
    for(String str:result5)
    {
      System.out.println(str);
    }

    结果:

    123
    abc
    456

     

    案例2:

    //split分割函数
    String str5 = "123|abc|456|";
    //按照 | 分割字符串
    String[] result5 = str5.split("|");
    //123
    for(String str:result5)
    {
      System.out.print(str+"; ");
    }

    结果:

    1; 2; 3; |; a; b; c; |; 4; 5; 6; |; 

     

    //split分割函数
    String str5 = "123|abc|456|";
    //按照 * 分割字符串,加上转义符\
    String[] result5 = str5.split("\|");
    //123
    for(String str:result5)
    {
      System.out.print(str+"; ");
    }

    结果:

    123; abc; 456; 

     

  • 相关阅读:
    集合已修改 ;可能无法执行枚举操作 Dictionary
    net 操作XML小结
    SQL SERVER 2000写存储过程出现列名无效的解决方法
    .net如何获得前一页面的地址
    SQL字符串叠加问题
    c# 保留2位小数
    如何取字符字段的第几个字符,如取name的左边从2位起的2个字符?
    SQL语句复制表的方法
    给页面加上Loading效果最简单实用的办法
    为XMl文档添加子节点,依据淘宝
  • 原文地址:https://www.cnblogs.com/Latiny/p/8278027.html
Copyright © 2020-2023  润新知