我试着计算句子中有多少字母“a”:“Hello Jordania”。
我发现该功能包含。我这样使用它:
var phrase = "Hello Jordania;
var comptenbrdea = phrase.contains('a');
print(comptenbrdea);
我得到“真实”作为回应。正常你会说,我知道,但我没有找到合适的功能来计算我得到一个多少时间。如果我可以检查每一个字符,我可以用循环做一些事情吗? ......我迷失在http://www.dartlang.org/search.html?cx=011220921317074318178%3Ai4mscbaxtru&ie=UTF-8&hl=en&q=string_scanner ......有人可以帮助我吗?
答案 0 :(得分:9)
这是一个简单的方法:
void main() {
print('a'.allMatches('Hello Jordania').length); // 2
}
编辑:测试的字符串是参数,而不是要计算的字符。
答案 1 :(得分:2)
void main() {
const regExp = const RegExp("a");
print(regExp.allMatches("Hello Jordania").length); // 2
}
答案 2 :(得分:1)
你需要迭代字符并对它们进行计数,上面的注释包含构建直方图的一般函数,但是只计算'a'的版本可能对你有好处。我只会告诉你如何循环字符:
var myString = "hello";
for (var char in myString.splitChars()) {
// do something
}
答案 3 :(得分: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]}");
答案 4 :(得分:0)
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);
}
答案 5 :(得分:0)
可能不是最好的,但你也可以这样做。
void main() {
var a = "ht://adfd//.coma/";
int count = a.split("t").length - 1;
print(count);
}
您需要减去 1,因为它首先拆分为一个列表,然后计算该列表的大小。