下面的代码会将str设置为“testss”
String str = "test".replaceAll("(.*)$","$1s");
以下代码会将其设置为“测试”
String str = "test".replaceFirst("(.*)$","$1s");
我原以为这两个操作会产生相同的结果。有人可以解释为什么 replaceAll 在字符串末尾添加一个额外的 s 吗?
最佳答案
这是因为 "(.*)$"
从 "test"
中捕获了两个字符串,"test"
和空字符串 ( “”)。所以 replaceAll 将添加两个 "s"
。
关于java - 为什么 replaceFirst 和 replaceAll 给出不同的结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12947714/