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

如:Stringstr=“abab,cede,ff”;有没有方法可以找出str中有几个a... 如:String str=“abab,cede,ff”;
有没有方法可以找出str中有几个a
展开
 我来答
枫神的天空
2015-07-24 · TA获得超过1746个赞
知道小有建树答主
回答量:329
采纳率:71%
帮助的人:255万
展开全部

成员方法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);

}

}

乌微月2S
2011-09-24 · TA获得超过5037个赞
知道大有可为答主
回答量:5361
采纳率:42%
帮助的人:2891万
展开全部
自己写方法或者用已有的方法进行组合。
转成字符串数组,然后自己比较吧。
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没有提供这种方法吗?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yongji2006
2011-09-25
知道答主
回答量:15
采纳率:0%
帮助的人:7.9万
展开全部
apache有个 common-lang 项目,其中有个StringUtils类含有大量常用字符串操作,你的这个需求对应的方法为 countMatches
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
励菲RP
2011-09-25 · TA获得超过240个赞
知道小有建树答主
回答量:1034
采纳率:0%
帮助的人:508万
展开全部

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

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我。。。。。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
七连小帅
2011-09-29 · TA获得超过346个赞
知道答主
回答量:125
采纳率:0%
帮助的人:45.3万
展开全部
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
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式