我有一些包含多个空行的输入文本,在将其放入我的TextField之前,我只想删除没有文本的行。
示例:
Hello, how are you?
// empty line
// empty line
With you?我想要的是:
Hello, how are you?
With you?我怎样才能移除空行?
发布于 2019-06-26 18:01:52
您要做的是在传入文本字段之前修改要传递给它的文本。
Dart有一个replaceAll方法,可以完成这个任务,并接受regex:
看起来应该是:
myinputstring.replaceAll(new RegExp(r'(?:[\t ]*(?:\r?\n|\r))+'), '\n');尽管您可能必须修改regex。regex所做的是查找两个或多个新行的任何序列(同时处理\r、\n和\r\n),然后用一个换行符替换它(同样,您可能希望将其更改为\r\n或\r)。
另一种方法是使用split和join。
myinputstring
.split(new RegExp(r'(?:\r?\n|\r)'))
.where((s) => s.trim().length != 0)
.join('\n');这一次,我们只是在任何新行上拆分,然后检查中间的修整部分(为了去掉空格)是否为空,以及它们是否忽略它们,然后将字符串重新连接起来。
请注意,出于性能原因,最好是构造regex对象,将其保存到其他地方(即const),然后在replaceAll中使用它。不过,我不能100%肯定regex在dart中的性能特性,所以这可能很好;只是我在Java中的背景说,这始终是推荐的方法。
https://stackoverflow.com/questions/56778316
复制相似问题