Flutter 如何在dart中将字符串转换为可搜索数组?
我有一个字符串,如Flutter 如何在dart中将字符串转换为可搜索数组?,flutter,dart,Flutter,Dart,我有一个字符串,如Lion is king我需要将其拆分为一个数组,如下所示: L Li Lio Lion "" i is "" t th the "" k ki kin king List<String> splitList = name.split(' '); List<String> indexList = []; for (int i = 0; i < splitList.length; i++,
Lion is king
我需要将其拆分为一个数组,如下所示:
L
Li
Lio
Lion
""
i
is
""
t
th
the
""
k
ki
kin
king
List<String> splitList = name.split(' ');
List<String> indexList = [];
for (int i = 0; i < splitList.length; i++,) {
for (int j = 0; j < splitList[i].length; j++) {
indexList.add(splitList[i].substring(0, j).toLowerCase());
}
}
return indexList;
我的代码:
L
Li
Lio
Lion
""
i
is
""
t
th
the
""
k
ki
kin
king
List<String> splitList = name.split(' ');
List<String> indexList = [];
for (int i = 0; i < splitList.length; i++,) {
for (int j = 0; j < splitList[i].length; j++) {
indexList.add(splitList[i].substring(0, j).toLowerCase());
}
}
return indexList;
我的代码有问题:
L
Li
Lio
Lion
""
i
is
""
t
th
the
""
k
ki
kin
king
List<String> splitList = name.split(' ');
List<String> indexList = [];
for (int i = 0; i < splitList.length; i++,) {
for (int j = 0; j < splitList[i].length; j++) {
indexList.add(splitList[i].substring(0, j).toLowerCase());
}
}
return indexList;
在我的代码中,每个单词的最后一个字母都丢失了
此的用法:
L
Li
Lio
""
i
""
t
th
""
k
ki
kin
我将此用于搜索目的,简而言之,我将此
数组
保存在Firestore
中,并使用数组创建一个搜索函数,该函数包含:
在StreamBuilder
中,通过将一个数组添加到拆分列表[I]中。长度应为:
String name = "Lion is the king";
List<String> splitList = name.split(' ');
List<String> indexList = [];
for (int i = 0; i < splitList.length; i++,) {
for (int j = 0; j < splitList[i].length + 1; j++) {
indexList.add(splitList[i].substring(0, j).toLowerCase());
}
}
for (var element in indexList){
print("\n $element");
}
//return indexList
String name=“狮子为王”;
列表拆分列表=名称。拆分(“”);
列表索引列表=[];
对于(int i=0;i
在拆分列表[i]中添加一个。长度应为:
String name = "Lion is the king";
List<String> splitList = name.split(' ');
List<String> indexList = [];
for (int i = 0; i < splitList.length; i++,) {
for (int j = 0; j < splitList[i].length + 1; j++) {
indexList.add(splitList[i].substring(0, j).toLowerCase());
}
}
for (var element in indexList){
print("\n $element");
}
//return indexList
String name=“狮子为王”;
列表拆分列表=名称。拆分(“”);
列表索引列表=[];
对于(int i=0;i循环的第一个元素是使用'word.substring(0,0)或'
这就是为什么方法的结果在每个单词拆分之前都包含一个空字符串:
[, l, li, lio, , i, , t, th, , k, ki, kin, king]
带更正的代码:
List<String> indexString(String name) {
List<String> splitList = name.split(' ');
List<String> indexList = [];
for (int i = 0; i < splitList.length; i++,) {
for (int j = 0; j < splitList[i].length; j++) {
indexList.add(splitList[i].substring(0, j + 1).toLowerCase());
}
}
return indexList;
}
注意:这也将索引字母数字单词。循环的j
的第一个元素使用'word.substring(0,0)或'
这就是为什么方法的结果在每个单词拆分之前都包含一个空字符串:
[, l, li, lio, , i, , t, th, , k, ki, kin, king]
带更正的代码:
List<String> indexString(String name) {
List<String> splitList = name.split(' ');
List<String> indexList = [];
for (int i = 0; i < splitList.length; i++,) {
for (int j = 0; j < splitList[i].length; j++) {
indexList.add(splitList[i].substring(0, j + 1).toLowerCase());
}
}
return indexList;
}
注意:这也将索引字母数字单词。对每个字符使用拆分
String name = "Lion is the king";
var res = List<String>();
var word = '';
name.split('').forEach((char) {
word = (char.isEmpty) ? '': word + char.toLowerCase();
res.add(word);
});
print(res);
对每个字符使用split
String name = "Lion is the king";
var res = List<String>();
var word = '';
name.split('').forEach((char) {
word = (char.isEmpty) ? '': word + char.toLowerCase();
res.add(word);
});
print(res);
非常感谢这解决了我的问题…此解决方案有两个缺点:[1]indexList
包含空字符串,[2]它还为标点字符编制索引。非常感谢这解决了我的问题…此解决方案有两个缺点:[1]indexList
包含空字符串,以及[2]它还索引标点字符。非常感谢您的回答,在我的情况下,我将不需要RegExp,因为我正在拆分的字符串不包含任何标点或字母数字。非常感谢您的回答,在我的情况下,我将不需要RegExp,因为我正在拆分的字符串不包含任何标点或字母数字。