Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 如何在dart中将字符串转换为可搜索数组?_Flutter_Dart - Fatal编程技术网

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,因为我正在拆分的字符串不包含任何标点或字母数字。