如何使用Dart计算字符串中字母的个数?

5hcedyr0  于 2023-11-14  发布在  其他
关注(0)|答案(6)|浏览(109)

我在计算在这个句子中有多少个字母aHello Jordania
我找到了函数contains()。我像这样使用它:

var phrase = "Hello Jordania";
var comptenbrdea = phrase.contains('a');
print(comptenbrdea);

字符串
正如我们所知,我得到了True作为响应。我找不到正确的函数来计算我得到a次数。如果我能检查每个字符,我可能可以用循环做一些事情?我在this上迷路了。

sgtfey8w

sgtfey8w1#

这里有一个简单的方法来做到这一点:

void main() {
  print('a'.allMatches('Hello Jordania').length); // 2
}

字符串
编辑:测试的字符串是参数,而不是要计数的字符。

pepwfjgg

pepwfjgg2#

void main() {
  const regExp = const RegExp("a");
  print(regExp.allMatches("Hello Jordania").length); // 2
}

字符串

xlpyo6sf

xlpyo6sf3#

void main(){
  String str = "yours string";
  Map<String, int> map = {};
  for(int i = 0; i < str.length; i++){
    int count = map[str[i]] ?? 0;
     map[str[i]] = count + 1;
  }
  print(map);
}

字符串

huwehgph

huwehgph4#

你需要对字符进行循环并计数,你上面的评论包含了一个用于构建直方图的通用函数,但是只计算“a”的版本可能适合你写。我将向你展示如何循环字符:

var myString = "hello";
for (var char in myString.splitChars()) {
  // do something
}

字符串

jbose2ul

jbose2ul5#

也许不是最好的,但你也可以这样做。

void main() {
  var a = "ht://adfd//.coma/";

  int count = a.split("t").length - 1;
  print(count);
}

字符串
您需要减去1,因为它首先被拆分为一个列表,然后计算该列表的大小。

6uxekuva

6uxekuva6#

// count letters
  Map<int,int> counts = new Map<int,int>();
  for (var c in s.charCodes() ) {
    counts[c] = counts.putIfAbsent(c, p()=>0) + 1;
  }
  // print counts
  for (var c in counts.getKeys())
    print("letter ${new String.fromCharCodes([c])} count=${counts[c]}");

字符串

相关问题