java中有没有方法可以找出字符串中有几个相同的字符

如:String str=“abab,cede,ff”;
有没有方法可以找出str中有几个a

成员方法public int indexOf(int ch , int fromIndex)返回由参数ch指定的字符在当前字符串的字符序列中出现的不小于fromIndex的最小下标索引值(如果不存在则返回-1)

示例代码如下:

运行结果:

代码:

import java.util.Scanner;

public class Test{

public static void main(String[] args){

Scanner in=new Scanner(System.in);

System.out.print("请输入字符串:");

String s=in.nextLine();

System.out.print("请输入需要计数的字符:");

String s1=in.nextLine();

char c=s1.charAt(0);//c为需要计数的字符

int i,index=-1,count=0;

for(i=0;i<s.length();i++)

if((s.indexOf(c,index+1))!=-1){

index=s.indexOf(c,index+1);

count++;

}

if(count==0)

System.out.println("字符串"+s+"中没有"+c);

else

if(c==' ')

System.out.println("字符串"+s+"中有"+count+"个空格键");

else

System.out.println("字符串"+s+"中有"+count+"个"+c);

}

}

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-09-24
自己写方法或者用已有的方法进行组合。
转成字符串数组,然后自己比较吧。
int count=0;
String str=“abab,cede,ff”;
char[] chars=str.toCharArray();
for(int i=0;i<chars.length;i++){
if('a'==chars[i]){
count++;
}
}追问

额。。。java没有提供这种方法吗?

本回答被提问者采纳
第2个回答  2011-09-25
apache有个 common-lang 项目,其中有个StringUtils类含有大量常用字符串操作,你的这个需求对应的方法为 countMatches
第3个回答  2011-09-25

代码如下,我测试过了。。。。希望满足你的要求

import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;

public class Test
{
public static void main(String[] args){
String s1 = "AABBC";
String s2 = "ABBCC";
List<String> sub1 = new ArrayList<String>();//保存s1的子串
List<String> sub2 = new ArrayList<String>();//保存s2的子串
Set<String> result = new HashSet<String>();//保存相同的子串

//求s1的子串
for(int i = 1;i<s1.length();i++){
for(int j = 0;j<=s1.length()-i;j++){
sub1.add(s1.substring(j,j+i));
}
}

//求s2的子串
for(int i = 1;i<s2.length();i++){
for(int j = 0;j<=s2.length()-i;j++){
sub2.add(s2.substring(j,j+i));
}
}

System.out.println("\"AABBC\"的子串 : " + sub1);
System.out.println("\"ABBCC\"的子串 : " + sub2);

for(String s: sub1)
if(sub2.contains(s))
result.add(s);

for(String s: sub2)
if(sub1.contains(s))
result.add(s);

System.out.println("相同的子串 : " + result);
}
}

希望能帮到你。。。。仍有问题可以HI我。。。。。本回答被网友采纳
第4个回答  2011-09-29
String str=“abab,cede,ff”;
int count=0;
for(int i=0;i<str.length();i++){
if(str.toCharArray()[i]!='A'){
count=count+1;
}
}
System.out.println(count);
这个count是几就有几个A
相似回答