zoukankan      html  css  js  c++  java
  • 字符串处理函数

      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; 

     

  • 相关阅读:
    使用yum更新时不升级Linux内核的方法
    centos7 redmine安装过程(转载)
    CentOS7安装GitLab、汉化、邮箱配置及使用(转载)
    [bzoj2780][Spoj8093]Sevenk Love Oimaster_广义后缀自动机
    [bzoj2595][WC2008]游览计划/[bzoj5180][Baltic2016]Cities_斯坦纳树
    [bzoj4006][JLOI2015]管道连接_斯坦纳树_状压dp
    OI模板のpoke流[大型考试复习必备/kl]
    [bzoj2453]维护队列_带修改莫队
    [bzoj4519][Cqoi2016]不同的最小割_网络流_最小割_最小割树
    [bzoj3894]文理分科_网络流_最小割
  • 原文地址:https://www.cnblogs.com/Latiny/p/8278027.html
Copyright © 2011-2022 走看看