首页 > 解决方案 > 出现“脚本错误”并且找不到原因

问题描述

我在 DartPad 中练习了一些问题,但无法得到解决方案,下面的代码是我认为可以的,但我在控制台中收到“脚本错误”。

我要解决的问题是我需要制作有两个参数的函数,第一个是随机句子,第二个是任何字符,我需要找出该句子中有多少个字符。

请回复我没有看到的错误,或者只是给我解决方案。泰

void main() {
  numberOfSameCharacters(randomString: 'Today is a nice day.', character: 'a');
}

void numberOfSameCharacters({String randomString, String character}) {
  int sameCharacters = 0;

  List<String> randomStringList = randomString.split('');

  for (int i = 0; i <= randomStringList.length; i++) {
    if (character.toLowerCase() == randomStringList[i].toLowerCase()) {
      sameCharacters += 1;
    }
  }

  print(sameCharacters);
}

标签: functionloopsflutterfor-loopdart

解决方案


我想我可以给你一个想法。

错误在这一行:

for (int i = 0; i <= randomStringList.length; i++)

我们知道大小为 N 的 List / Arrays 的索引值从 0 到 N-1,但是这段代码运行 0 到 N 的循环。所以我们得到RangeError

更正的代码:

void main() {
  numberOfSameCharacters(randomString: 'Today is a nice day.', character: 'a');
}

void numberOfSameCharacters({String randomString, String character}) {
  int sameCharacters = 0;

  List<String> randomStringList = randomString.split('');

  for (int i = 0; i < randomStringList.length; i++) {
    if (character.toLowerCase() == randomStringList[i].toLowerCase()) {
      sameCharacters += 1;
    }
  }

  print(sameCharacters);
}

希望能解决您的问题!


推荐阅读