java中有没有方法可以找出字符串中有几个相同的字符
成员方法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);
}
}
转成字符串数组,然后自己比较吧。
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没有提供这种方法吗?
代码如下,我测试过了。。。。希望满足你的要求
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我。。。。。
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