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 颤振:获取所有字母的位置。(游戏)_Flutter_Dart - Fatal编程技术网

Flutter 颤振:获取所有字母的位置。(游戏)

Flutter 颤振:获取所有字母的位置。(游戏),flutter,dart,Flutter,Dart,我正在做一个游戏,但我不能更改匹配多次的字母 我不知道我做错了什么,我希望有人能帮助我,谢谢 我留下一个演示视频,结果是多明戈这个词 我感觉到的问题是,当我按下该键或它仅在开始时被指定 当必须用所有可能的匹配项完成时 这是我的省道功能。 String word = 'domingo'; String key = 'o'; // OnTap button "O" List<Word> positionsFound = List<Word>(); _wor

我正在做一个游戏,但我不能更改匹配多次的字母

我不知道我做错了什么,我希望有人能帮助我,谢谢

我留下一个演示视频,结果是多明戈这个词

我感觉到的问题是,当我按下该键或它仅在开始时被指定

当必须用所有可能的匹配项完成时

这是我的省道功能。

  String word = 'domingo';
  String key = 'o'; // OnTap button "O"
  List<Word> positionsFound = List<Word>();

  _word(){
    String wordEmpty = '';
    for(int i=0; i<word.length; i++){
      if(key.isEmpty){
        wordEmpty = wordEmpty+'_';
      } else {
        wordEmpty = wordEmpty+'_';
        int position = word.toLowerCase().indexOf(key.toLowerCase());
        if(position == i){
          positionsFound.add(Word(key, position));
          print(position); // The position must be 1 and 6, it only gives me 1.

        }
      }
    }


    for(int i=0; i<positionsFound.length; i++){
      wordEmpty = wordEmpty.replaceFirst('_', positionsFound[i].key, positionsFound[i].position);
    }

    return wordEmpty;
  }


class Word {
    String key;
    int position;

    Word(this.key, this.position);
}
stringword='domingo';
字符串键='o';//OnTap按钮“O”
List positionsFound=List();
_单词(){
字符串wordEmpty='';

对于(inti=0;i,过了一会儿,我意识到indexof允许您从上次执行的搜索开始

if(key.isNotEmpty){
          int position = word.toLowerCase().indexOf(key.toLowerCase());
          while(position != -1){
            if(position != -1){
              positionsFound.add(Word(key, position));
            }
            position = word.toLowerCase().indexOf(key.toLowerCase(), position+1);
          }
        }