统计一个字符串中出现某个字母的次数(注意区分大小写)。String类中的相关方法
length( ):计算字符串长度,得到一个int型数值;
indexOf( ):在字符串中定位某个子串,并返回位置编号
substring( ):截取字符串中的一部分,并作为一个新字符串返回;
equals():比较两个String内容是否完全相同。
C++版:
#include <bits/stdc++.h>
using namespace std;
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
string s;
cin>>s;
int a[53];//统计数量
memset(a,0,sizeof(a));//初始化0
for (int i=0;i<s.length();i++)
{
if (s[i]>='A' && s[i]<='Z') a[s[i]-64]++;//大写处理
if (s[i]>='a' && s[i]<='z') a[s[i]-70]++;//小写处理,直接在大写后面
}
for (int i=1;i<=26;i++)
{
char c=i+64;
cout<<c<<": "<<a[i]<<"次"<<endl;
}
for (int i=27;i<=52;i++)
{
char c=i+70;
cout<<c<<": "<<a[i]<<"次"<<endl;
}
return 0;
}
首先用indexof得出该字符第一次出现的下标,记为a
将计数器+1
截取从a+1到字符串末尾,得到新的子串
如果某次indexof的返回值等于-1,停止操作
否则递归上述过程
用replaceall空字符替换这个字符。然后字符串前后长度做差就是次数
/**
* 找出字符串中某个字符出现的次数
*
* @param str 字符串
* @param c 字符
* @return 出现次数
*/
public static int count(String str, char c) {
//把要找的字符全部去掉(替换成""),然后长度差就是出现的次数
String str1 = str.replaceAll(String.valueOf(c), "");
return str.length() - str1.length();
}