replace、replaceAll、replaceFirst

2022-08-21 12:43:54 浏览数 (1)

聊聊这仨很常用的函数

我相信很多人也跟我一样也有个误区,错把replace当成replaceFirst,把replaceAll当成replace

实际上,replace函数会替换掉满足字符串中所有出现过第一个参数中的值的地方

例如:

代码语言:javascript复制
      String string = "ruben love strawberry";

      String replace = string.replace("r", "");
// uben love stawbey

如果我们只需要替换第一处,则需要使用replaceFirst

例如:

代码语言:javascript复制
      String string = "ruben love strawberry";

      String replaceFirst = string.replaceFirst("[A-Za-z0-9]", "");
// uben love strawberry

并且replaceFirst支持正则表达式,replace则不支持

replaceAll则是用于需要替换所有满足正则表达式匹配的场景

代码语言:javascript复制
      String string = "ruben love strawberry";

      String replaceAll = string.replaceAll("[A-Za-z0-9]", "");
// 

这里因为全部匹配,所以被替换成空串了

因此注意这种情况:

代码语言:javascript复制
      String string = "D:\Directory\directory\file.suffix";

      String replace = string.replace("\D", "");
// D:irectorydirectoryfile.suffix
      String replaceFirst = string.replaceFirst("\D", "");
// :Directorydirectoryfile.suffix
      String replaceAll = string.replaceAll("\D", "");
// 

就是我们需要替换的字符中如果出现了刚好满足正则的情况下。。。

0 人点赞