java 怎样从一个string字符串中判断某个字母出现多少次

(注:比方说c出现多少次? 如果考虑到大小写问题又该如何?)

str为你要测试的字符串

第一种方法:
byte[] temp = str.getBytes();//使用平台默认的字符集将此 String 解码为字节序列,并将结果存储到一个新的字节数组中。
int count = 0;
//遍历数组的每一个元素,也就是字符串中的每一个字母
for(int i=0;i<temp.length; i++){
//如果字母等于c
if(temp[i].equals('c')){
//计数器加一
count ++;
}
}

第二种:

int count=0;
String str =""//你要测试的字符串
//index为字符串中第一次出现c的位置,如果字符串中没有c将返回-1
int index = str.indexOf("c");
//如果字符串中有c
while( str.indexOf("c")!=-1){
count++;
//将字符串出现c的位置之前的全部截取掉
str = str.subString(str.indexOf("c"));
}

考虑大小写: str = str.toLowerCase();//将字符串全部转化成小写
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-09-24
public static void main(String[] args) {
//假设str就是你要的字符串
String str="acbcdcfcgcc";
//计数c出现了几次
int x=0;
//遍历数组的每个元素
for(int i=0;i<=str.length()-1;i++)
{
//因为i的最大数是str长度-1,这里要+1;
String getstr=str.substring(i,i+1);
if(getstr.equals("c"))
{
x++;
}
}
System.out.print(x);

}

大小写问题就如一楼所说的
第2个回答  2019-09-06
从头到尾循环
判断相等,自增
例如判断a
int
cout=0;
String
s=new
String("abcdefaaabc");
for(int
i=0;i<s.length();i++)
if(s.charAt(i)=='a')
cout++;就这样就可以了
如果不要判断大小写。s.toLowerCase()全变了再判断
第3个回答  2017-12-27
/** 计算字符串某个字符个数
* @param str 原字符串
* @param ch 计算的字符
* @return */
public static int getCharCount(String str, char ch) {
if (str == null) {
return 0;
}
int count = 0;
char[] chars = str.toCharArray();
for (char c : chars) {
if (ch == c) {
count++;
}
}
return count;
}
第4个回答  2019-05-13
public static void main(String[] args) {
String data = "abcdsldijsCdsdfs";
String str = "c";
System.out.println(findCount(data,str));
System.out.println(findCountNotCheck(data,str));
}
//区分大小写
public static int findCount(String data,String str){
return data.split(str).length-1;
}
//不区分大小写
public static int findCountNotCheck(String data,String str){
return data.toUpperCase().split(str.toUpperCase()).length-1;
}
相似回答