如何仅删除Textfield中没有文本的行



我有一些输入文本,其中包含多个空行,我只想在将文本放入文本字段之前仅删除没有文本的行。

示例:

Hello, how are you?
// empty line
// empty line
With you?

我想要的是:

Hello, how are you?
With you?

如何删除空线?

您想做的就是修改您要传递的文本,然后再将其传递给文本。

DART具有一种替代方法,该方法应该能够解决问题并掌握正则是:

看起来像:

myinputstring.replaceAll(new RegExp(r'(?:[t ]*(?:r?n|r))+'), 'n');

,尽管您可能必须修改正则表达式。正则表达式正在寻找两个或多个新线的序列(同时处理 r, n和 r n(,然后用单个newline替换(同样,您可能想将其更改为 r n或 r(。

您可以做的另一种方法是分开和加入。

myinputstring
    .split(new RegExp(r'(?:r?n|r)'))
    .where((s) => s.trim().length != 0)
    .join('n');

这次我们只是在任何新线路上分开,然后检查一下介于两者之间的修剪(摆脱空格(是否为空的零件,以及它们是否忽略它们,然后将字符串重新加载。

请注意,出于绩效原因,构造正则对象,将其保存在其他地方(即const(,然后将其保存在替换中可能是个好主意。我并不是100%确定DART在DART中的性能特征,因此可以很好。只是我在Java的背景说这始终是推荐的方法。

最新更新