Java 同时替换 字符串中子串

最近做一个需求,发送短信. 不同短信模板 参数个数/类型不一样:

public void Test(){
    // 短信模板
    String message_model = "尊敬的【0】先生/女士,有一笔订单需要您及时审核,订单号:【1】,客户姓名:【2】。";
    // 判断是否 需要值替换 --> 模板包含数字
    if(HasDigit(message_model)){
       
       // 取出数字 --> 需要替换的值
        Object [] array =  extractDigitList(message_model).toArray();
        String [] searchList = new String[array.length] ;

        //  数组拷贝
        //  System.arraycopy(原数组, 原数组的开始位置, 目标数组, 目标数组的开始位置, 拷贝个数)
        System.arraycopy(array,0,searchList,0,array.length);

       //  Arrays.copyOf(array,array.length);  也可以实现数组拷贝,底层也实现了System.arraycopy(...)

        // 替换的 value 
        String [] replacementList = {"大王","1001","小白"};

        /* Apache的StringUtils.replaceEach
         * 需要替换的文本 , 索引位置集合 , 替换的值 集合
         */ 
        String message = StringUtils.replaceEach(message_model,searchList,replacementList);

        // 结果--> 尊敬的【大王】先生/女士,有一笔订单需要您及时审核,订单号:【1001】,客户姓名:【小白】。
        System.out.println("短信内容:-->"+message);
    }}


// 判断一个字符串是否含有数字
public boolean HasDigit(String content) {
    boolean flag = false;
    Pattern p = Pattern.compile(".*\\d+.*");
    Matcher m = p.matcher(content);
    if (m.matches()) {
        flag = true;
    }
    return flag;
}

// 提取字符串中的数字
public List extractDigitList(String replaceStr){
    List<String> digitList = new ArrayList<String>();
    Pattern pattern = Pattern.compile("[^0-9]");
    Matcher matcher = pattern.matcher(replaceStr);
    String result = matcher.replaceAll("");
    for (int i = 0; i < result.length(); i++) {
        digitList.add(result.substring(i, i+1));
    }
    return digitList ;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 String 类的 replaceAll() 方法来替换字符串的斜杠。例如,要将字符串的所有斜杠替换为双斜杠,可以使用以下代码: String str = "这是一个/包含/斜杠的字符串"; String newStr = str.replaceAll("/", "//"); 这将返回一个新的字符串 newStr,其所有的斜杠都被替换为双斜杠。 ### 回答2: 要在Java替换字符串的"/",可以使用String类的replace()方法或replaceAll()方法。下面分别介绍这两种方法的用法: replace()方法用于替换字符串的指定字符。它接收两个参数,第一个参数是要替换的字符序列,第二个参数是替换后的字符序列。例如,要将字符串的"/"替换为"-",可以使用如下代码: ```java String str = "这是一个/示例字符串"; String replacedStr = str.replace("/", "-"); System.out.println(replacedStr); ``` 运行结果为:"这是一个-示例字符串" replaceAll()方法用于替换字符串的指定正则表达式的匹配项。它接收两个参数,第一个参数是要替换的正则表达式,第二个参数是替换后的字符串。正则表达式的"/"需要使用转义符"\\"。例如,要将字符串的所有"/"替换为"-",可以使用如下代码: ```java String str = "这是一个/示例字符串/带有多个/斜杠"; String replacedStr = str.replaceAll("\\/", "-"); System.out.println(replacedStr); ``` 运行结果为:"这是一个-示例字符串-带有多个-斜杠" 注意,在使用replaceAll()方法时,如果要替换的字符是正则表达式的特殊字符,需要使用转义符"\"进行转义,以避免出现错误。 以上是在Java替换字符串的"/"的两种常见方法。根据实际需求选择合适的方法即可。 ### 回答3: 在Java,可以使用String的replace()方法来替换字符串的"/"。该方法接受两个参数:第一个参数是要替换的字符或字符串,第二个参数是替换后的字符或字符串。 下面是一个示例代码: ```java public class Main { public static void main(String[] args) { String str = "abc/def/ghi"; String replacedStr = str.replace("/", ""); System.out.println(replacedStr); } } ``` 在这个例子,我创建了一个包含斜杠字符的字符串"abc/def/ghi"。然后,我使用replace()方法将斜杠替换为空字符串,即将"/"删除。最后,我将替换后的字符串打印出来。 输出结果为:"abcdefghi"。 这样就完成了在Java替换字符串的斜杠操作。请注意,replace()方法返回的是一个新的字符串,原始字符串并没有发生改变。如果想要修改原始字符串,可以将替换后的字符串重新赋值给原始字符串变量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值