Kotlin中如何通过正则表达式使用replaceFirst实现字符串替换?
问题原因及修复方案
- 核心原因:Java、Kotlin、JavaScript等绝大多数主流编程语言中,
String是不可变类型,所有字符串修改类方法(包括replaceFirst、replace、substring等)都不会修改原字符串对象,只会返回修改后的新字符串实例。 - 现有写法的问题:没有接收
replaceFirst方法返回的新字符串,修改结果没有被保存,所以看起来原字符串没有变化。 - 修复代码示例(以Java为例):
// 原字符串 String rawStr = "there are 400 pictures"; // 接收方法返回的新字符串,保存修改结果 String resultStr = rawStr.replaceFirst(" [0-9]{3}", " a lot of "); // 输出验证结果为:there are a lot of pictures System.out.println(resultStr);
- 补充说明:你使用的正则
[0-9]{3}可以正确匹配原字符串中的400片段,替换逻辑本身没有问题,仅需补充变量接收返回值即可。
内容的提问来源于stack exchange,提问作者boden
相关产品推荐
相关产品推荐

