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

问题描述 投票:0回答:6

我正在尝试计算句子中有多少个字母

a
Hello Jordania

我找到了这个功能

contains()
。我这样使用它:

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

据我们所知,我得到了

True
作为回复。我找不到正确的函数来计算我获得 a
多少次
。如果我可以检查每个字符,我也许可以用循环做一些事情?我迷失了这个

string dart contains counting
6个回答
76
投票

这里有一个简单的方法:

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

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


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

2
投票
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);
}

1
投票

您需要迭代字符并对它们进行计数,上面的评论包含构建直方图的通用函数,但是仅计算“a”的版本可能适合您编写。我将向您展示如何循环字符:

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

1
投票

可能不是最好的,但你也可以做这样的事情。

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

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

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


-1
投票
  // 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]}");
© www.soinside.com 2019 - 2024. All rights reserved.