本文已参与「新人创作礼」活动,一起开启掘金创作之路。
这是【Dart 教程系列第 41 篇】,如果觉得有用的话,欢迎关注专栏。
replaceAll
源码如下所示
String replaceAll(Pattern from, String replace);
语法
替换掉字符串中全部符合条件的字符。如果没有符合条件的,则返回原字符串。
第一个参数 from 表示字符串中被替换掉的字符,第二个参数 replace 表示替换为什么字符。
举例
String text = "abcdabcd";
print(text.replaceAll("ab", "xy")); // 返回 xycdxycd
replaceFirst
源码如下所示
String replaceFirst(Pattern from, String to, [int startIndex = 0]);
语法
只替换掉第一个符合条件的字符。
第一个参数 from 表示字符串中被替换掉的字符,第二个参数 to 表示替换为什么字符,第三个参数为可选参数,表示从哪个索引位置开始替换,默认为 0 。
举例
String text = "abcdabcd";
// 01 只替换掉第一个符合条件的字符
print(text.replaceFirst("ab", "xy")); // 返回 xycdabcd
// 02 从索引 1 位置后面开始,替换掉第一个符合条件的字符
print(text.replaceFirst("ab", "xy", 1)); // 返回 abcdxycd
replaceRange
源码如下所示
String replaceRange(int start, int? end, String replacement);
语法
替换掉指定范围内的字符。有效取值范围是 0 <= start <= end <= 字符串.length。
第一个参数 start 表示从哪个索引位置开始替换,包括该索引。
第二个参数 end 表示从哪个索引位置结束替换,不包括该索引。因为 end 为可空参数,当 end 为 null 时,表示到字符串末尾。
第三个参数 replacement 表示替换为什么字符。
举例
String text = "abcdabcd";
// 01 从索引 0 位置开始,到索引 3 位置结束(但不包括该索引),中间的字符被替换为 m
print(text.replaceRange(0, 3, "m")); // 返回 mdabcd
// 02 从索引 0 位置开始到末尾,中间的字符被替换为 m
print(text.replaceRange(0, null, "m")); // 返回 m
replaceAllMapped
源码如下所示
String replaceAllMapped(Pattern from, String Function(Match match) replace);
语法
替换掉所有符合条件的字符。用方法的返回值替换指定的字符,如果没有匹配的字符,则返回原字符串。
第一个参数 from 表示字符串中被替换掉的字符,
第二个参数 replace 表示如果有匹配的字符,则用指定的字符作为返回值替,换掉字符串中符合条件的字符。最终的效果其实和方法 replaceAll 是一样的。
举例
String text = "abcdabcd";
// 用 xy 替换掉字符串中的 ab
String str = text.replaceAllMapped("ab", (Match match) => "xy");
print(str); // 返回 xycdxycd
replaceFirstMapped
源码如下所示
String replaceFirstMapped(Pattern from, String replace(Match match), [int startIndex = 0]);
语法
只替换掉第一个符合条件的字符。用方法的返回值替换指定的字符,如果没有匹配的字符,则返回原字符串。
第一个参数 from 表示字符串中被替换掉的字符,
第二个参数 replace 表示如果有匹配的字符,则用指定的字符作为返回值,替换掉字符串中第一个符合条件的字符。最终的效果其实和方法 replaceFirst 是一样的。
第三个参数 startIndex 为可选参数,表示从哪个索引位置开始替换,默认为 0,不能大于字符串的长度。
举例
String text = "abcdabcd";
// 01 用 xy 替换掉字符串中第一个符合条件的 ab
String str1 = text.replaceFirstMapped("ab", (Match match) => "xy");
print(str1); // 返回 xycdabcd
// 02 从索引 1 位置处开始,用 xy 替换掉字符串中第一个符合条件的 ab
String str2 = text.replaceFirstMapped("ab", (Match match) => "xy", 1);
print(str2); // 返回 abcdxycd
更多 Dart 的 String 字符串方法,推荐一篇博客 Dart 的 String 字符串的常用方法
你的问题得到解决了吗?欢迎在评论区留言。
赠人玫瑰,手有余香,如果觉得文章不错,希望可以给个一键三连,感谢。
结束语
技术是一点一点积累的,大神也不是一天就可以达到的。原地不动就是退步,所以每天进步一点点。
最后,附上一句格言:"好学若饥,谦卑若愚",望共勉。