12

「HelloJordania」という文にある「a」の文字数を計算しようとしています。

関数にが含まれていることがわかりました。私はそれをこのように使用しています:

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

応答として「True」を取得します。通常、あなたは言うでしょう、私は知っています、しかし私は私が何回得るかを計算するための正しい関数を見つけられません。すべての文字をチェックできれば、ループで何かできるかもしれません。... http://www.dartlang.org/search.html?cx=011220921317074318178%3Ai4mscbaxtru&ie=UTF-8&hl=en&q=string_scannerで迷子になっています...誰か助けてもらえますか?

4

6 に答える 6

46

これを行う簡単な方法は次のとおりです。

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

編集:テストされた文字列はパラメータであり、カウントされる文字ではありません。

于 2012-10-28T21:59:20.437 に答える
4
void main() {
  const regExp = const RegExp("a");
  print(regExp.allMatches("Hello Jordania").length); // 2
}
于 2012-11-01T14:16:06.427 に答える
2

文字を反復してカウントする必要があります。上記のコメントには、ヒストグラムを作成するための一般的な関数が含まれていますが、「a」をカウントするだけのバージョンは、おそらく作成するのに適しています。文字をループする方法を紹介します。

var myString = "hello";
for (var char in myString.splitChars()) {
  // do something
}
于 2012-10-28T18:05:21.777 に答える
0
  // 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]}");
于 2012-10-28T19:05:16.927 に答える