我在做一个游戏,但我不能换一次以上匹配的字母。
我不知道我做错了什么,我希望有人能帮我,谢谢。
我留下了一个演示视频,结果是多明戈
我感觉到的问题是,当我按下键或它只是在开始分配。
当它必须与所有可能的匹配完成时。
这是我的飞镖函数.
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);
}发布于 2019-09-09 17:46:04
过了一会儿,我意识到索引允许您从您执行的最后一次搜索开始。
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);
}
}https://stackoverflow.com/questions/57857408
复制相似问题