Java 中replaceFirst(String regex, String replacement) 和 replaceAll 区别是什么?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
在Java中,replaceFirst(String regex, String replacement)
和 replaceAll(String regex, String replacement)
方法都用于替换字符串中的内容,但它们之间存在一个主要区别:
replaceFirst: 此方法只替换字符串中第一个与给定正则表达式匹配的子串。也就是说,它会查找目标字符串中第一个匹配regex
的部分,并用replacement
替换之,之后的内容即使也匹配正则表达式也不会被替换。
示例代码:
String str = "Hello World! Hello China!";
String result = str.replaceFirst("Hello", "Hi");
System.out.println(result); // 输出: Hi World! Hello China!
replaceAll: 这个方法会替换所有与正则表达式匹配的子串。它会遍历整个目标字符串,查找所有匹配regex
的部分,并将它们全部用replacement
替换掉。
示例代码:
String str = "Hello World! Hello China!";
String result = str.replaceAll("Hello", "Hi");
System.out.println(result); // 输出: Hi World! Hi China!
总结来说,replaceFirst
仅替换首次出现的匹配项,而replaceAll
会替换所有匹配项。两者都使用正则表达式作为匹配模式,因此可以进行复杂的模式匹配和替换操作。