zoukankan      html  css  js  c++  java
  • 关于java中replace、replaceAll、replaceFirst的用法

    今天突然看到Java中的replace有两种方法,一种是直接替换,另一种是可以进行匹配替换的方式:

    public String replace(CharSequence target,
                          CharSequence replacement)
    使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。该替换从字符串的开头朝末尾执行,例如,用 "b" 替换字符串 "aaa" 中的 "aa" 将生成 "ba" 而不是 "ab"。
    参数:
    target - 要被替换的 char 值序列
    replacement - char 值的替换序列
    返回:
    所得 String
    抛出:
    NullPointerException - 如果 target 或 replacement 为 null

    源码如下:

    public String replace(CharSequence target, CharSequence replacement) {
        return Pattern.compile(target.toString(), Pattern.LITERAL).matcher(this).replaceAll(Matcher.quoteReplacement(replacement.toString()));
    }

     ------------------------------------------------------------------------------------

    String的replaceAll用法

    public String replaceAll(String regex, String replacement) {
        return Pattern.compile(regex).matcher(this).replaceAll(replacement);
    }

    是将第一次参数作为正则表达式进行匹配:

    如:

    String a = "0010101";
    a = a.replace("^0", "(81)");
    System.out.println(a);
    // 此时输出的是(81)010101,因为^0翻译成正则表达式是第一个0,所以第一个0与正则表达式匹配,然后用(81)替换与正则表达式匹配的字符串

    但是replaceAll有区别的是:

    String a = "00010101";
    a = a.replaceAll("0", "(81)");
    System.out.println(a);
    // 输出的是(81)(81)(81)1(81)1(81)1

    ---------------------------------------------------------------------------------------

    replaceFirst用法:

    public String replaceFirst(String regex, String replacement) {
        return Pattern.compile(regex).matcher(this).replaceFirst(replacement);
    }

    是将第一次参数作为正则表达式进行匹配:

    如:

    String a = "0010101";
    a = a.replace("^0", "(81)");
    System.out.println(a);
    // 此时输出的是(81)010101,因为^0翻译成正则表达式是第一个0,所以第一个0与正则表达式匹配,然后用(81)替换与正则表达式匹配的字符串

    但是replaceAll有区别的是:

    String a = "00010101";
    a = a.replaceAll("0", "(81)");
    System.out.println(a);
    // 输出的是(81)0010101
    
    
  • 相关阅读:
    设计模式-单件模式 实现
    设计模式-观察者模式 实现
    设计模式-策略模式 实现
    笔记- 设计模式:设计原则
    EventBus 发布/订阅 机制的 java 实现
    webService 客户端 以wsimport方式生成对应java文件
    【安装mysql】windows安装压缩版mysql5.7.15
    eclipse插件开发入门
    Java程序开发.邱加永2.1节
    Mysql常用表操作 | 单表查询
  • 原文地址:https://www.cnblogs.com/sharysea/p/10965877.html
Copyright © 2011-2022 走看看