Dart - 使用列表中包含的元素拆分字符串
Dart - split a string with elements contained in a list
我在编码和 Dart 方面经验不足。
我如何从一个字符串和一个列表(其中包含部分字符串)开始将字符串拆分为列表中的部分。
我试着更好地解释自己:
这是我的输入:
void main() {
String text = 'Hello I am Gabriele!';
List ErrList = ['Hello', 'I'];
}
这是我想要的输出:
['Hello', ' ', 'I', ' am Gabriele']
希望有人能帮助我。
谢谢:)
我不知道你是否真的需要列表中有空 space,但如果你想在列表中有 space,你可以更正我的示例。
void main() {
String text = 'Hello I am Gabriele!';
List<String> errList = ['Hello', 'I'];
// `#` uses as separator.
var a = text
.split(' ')
.map((e) => errList.contains(e) ? '$e#' : e)
.join(' ')
.split('#');
print(a); // [Hello, I, am Gabriele!]
print(a.join()); // Hello I am Gabriele!
}
根据您的要求:
void main() {
String text = 'Hello I am Gabriele!';
// Note: an empty space will be added after the objects except for the last one.
// Order is important if you want the right results.
List<String> errList = ['Hello', 'I'];
var result = text
.split(' ')
.map((e) => errList.contains(e) ? e + '#' : e)
.join(' ')
.split('#')
.expand((e) {
if (errList.contains(e.trim()) && !e.contains(errList.last)) return [e, ' '];
if (e.contains(errList.last)) return [e.trim()];
return [e];
}).toList();
print(result); // [Hello, , I, am Gabriele!]
}
我在编码和 Dart 方面经验不足。 我如何从一个字符串和一个列表(其中包含部分字符串)开始将字符串拆分为列表中的部分。
我试着更好地解释自己:
这是我的输入:
void main() {
String text = 'Hello I am Gabriele!';
List ErrList = ['Hello', 'I'];
}
这是我想要的输出:
['Hello', ' ', 'I', ' am Gabriele']
希望有人能帮助我。 谢谢:)
我不知道你是否真的需要列表中有空 space,但如果你想在列表中有 space,你可以更正我的示例。
void main() {
String text = 'Hello I am Gabriele!';
List<String> errList = ['Hello', 'I'];
// `#` uses as separator.
var a = text
.split(' ')
.map((e) => errList.contains(e) ? '$e#' : e)
.join(' ')
.split('#');
print(a); // [Hello, I, am Gabriele!]
print(a.join()); // Hello I am Gabriele!
}
根据您的要求:
void main() {
String text = 'Hello I am Gabriele!';
// Note: an empty space will be added after the objects except for the last one.
// Order is important if you want the right results.
List<String> errList = ['Hello', 'I'];
var result = text
.split(' ')
.map((e) => errList.contains(e) ? e + '#' : e)
.join(' ')
.split('#')
.expand((e) {
if (errList.contains(e.trim()) && !e.contains(errList.last)) return [e, ' '];
if (e.contains(errList.last)) return [e.trim()];
return [e];
}).toList();
print(result); // [Hello, , I, am Gabriele!]
}