写点什么

dart: 字符串 replace 相关的方法

作者:坚果
  • 2022 年 6 月 30 日
  • 本文字数:1243 字

    阅读完需:约 4 分钟

今天遇到这样一个问题,就是在文本展示中会多出来几个特殊字符,"🖼️",这是由于我在编辑的时候插入的,便于区分是否是图片,但是在文本展示的过程中出现了,那么有没有一种方式让他不要展示呢,答案肯定是有的,接下来就和大家一起来看一下

关于 String 中的关于这方面的一些操作。

replaceAll

String replaceAll(pattern from,String replace)

replaceAll 第一个参数是匹配符,可以是字符串也可以是正则表达式,第二个参数是要替换的字符串,返回值是一个新字符串。

,我在这给大家写个 Demo,大家就知道了

void main() {  var a = '大前端🖼️之旅🖼️';  var b = '大前端🖼️';  print(a.replaceAll('🖼️', ''));   print(b.replaceAll(RegExp(r'(🖼️)'), '')); }
复制代码


运行效果如下:



上面的学会了没

我们接着来


replaceAllMapped

String replaceAllMapped(Pattern from,String replace(Match match))
复制代码

replaceAllMapped 第一个参数是匹配符,可以是字符串也可以是正则,第二个参数是一个函数,函数的参数捕获到的字符串片段,其实就是对捕获的字符串片段的一个映射,看函数名的 mapped 就能看的出来。

void main() {  var a = '大前端🖼️之旅🖼️';  var b = '大前端🖼️';  print(a.replaceAllMapped('🖼️', (Match m) => ''));  print(b.replaceAllMapped(RegExp(r'🖼️'), (Match m) => '')); }
复制代码



replaceFirst

String replaceFirst(Pattern from,String to,[int startIndex = 0])
复制代码

replaceFirst 第一参数是匹配符,可以是字符串也可以是正则,第二个参数是要替换的字符串,第三个参数可选,默认是 0,。这个方法如果匹配到了多个字符串片段,那么只会替换下标 startIndex 的那个捕获片段,如果下标比捕获的片段长度大,那么将会报错

void main() {    var d = '大前端之旅';  print(d.replaceFirst(RegExp(r'\大'), 'jianguo', 0)); //1ccc3}
复制代码



4.replaceFirstMapped

String replaceFirstMapped(Pattern from,String replace(Match match),[int startIndex = 0])
复制代码

replaceFirstMapped 和 replaceAllMapped 类似,替换捕获到的字符串片段中 startIdnex 对应的那个片段,并通过第二个参数传的函数进行转换。

  var e = 'asd';  print(e.replaceFirstMapped(RegExp(r'\w'), (Match m) => '${m[0]}${m[0]}', 2),);//asdd
复制代码

5.replaceRange

String replaceRange(int start,int end,String replacement)
复制代码

replaceRange 第一个参数是开始下标,第二个参数是结束下标,第三个参数是要替换的字符串。替换的字符串包含开始下标,不包含结束下标,并且开始下标的数字要>=0,小于等于结束下标,结束下标的值要小于等于字符串长度,否则会报错。

  var f = '123456789';  print(f.replaceRange(1, 3, 'replace')); //1replace456789
复制代码

以上就是我用到的 replace 相关的一些操作,

在项目里我也是用这行代码就解决了问题。



实际工作也是这样遇到问题,并解决问题的一个过程,只要我们坚持,就会有收获。

发布于: 刚刚阅读数: 5
用户头像

坚果

关注

此间若无火炬,我便是唯一的光 2020.10.25 加入

公众号:“大前端之旅”,华为云享专家,InfoQ签约作者,51CTO博客首席体验官,专注于大前端技术的分享,包括Flutter,小程序,安卓,VUE,JavaScript。

评论

发布
暂无评论
dart:字符串replace相关的方法_flutter_坚果_InfoQ写作社区