0
点赞
收藏
分享

微信扫一扫

统计一个字符串内所有字母出现的次数


英文字母只有26个,可以让每一个字符和他做一个对比,相同个数+1,当个数为0时说明没有此字母出现

 方式一:

/**
* 判断此字符串内所有的字母出现的次数
* hdsakhdsakhflkdsjfldsafkdskfdsalkfdsalkfpdspfAmklAldAkdsaAA
*
*/
String s5 = "hdsakhdsakhflkdsjfzldsafkdskfdsalkfdsalkfpdspfAmklAldAkdsaAA";
// A~z的ASCII码值 方式一
for (char i = 'A'; i <='Z'; i++) {
int count = 0;
for (int j = 0; j < s5.length(); j++) {
if (i == s5.charAt(j)) {
count++;
}
}
// 当count的个数为0时说明没有出现过该字母
if (count != 0) {
System.out.println((char) i + "--->" + count);
}
}
/

 方式二:

/**
* 判断此字符串内所有的字母出现的次数
* hdsakhdsakhflkdsjfldsafkdskfdsalkfdsalkfpdspfAmklAldAkdsaAA
*
*/
String s5 = "hdsakhdsakhflkdsjfzldsafkdskfdsalkfdsalkfpdspfAmklAldAkdsaAA";

//1.新建一个字符串存储不重复的单个字符
String newStr = "";
for(int i = 0;i<s5.length();i++){
char temp = s5.charAt(i);

if(newStr.indexOf(temp )==-1){
newStr+=temp ;
}
}

for(int i = 0;i<newStr.length();i++){
char temp = newStr.charAt(i);
int count = 0;
for(int j = 0;j<s5.length();j++){

if(temp==s5.chatAt(j)){

count ++;
}
}
System.out.println(temp+" --> "+count);

}

方式三

//将无序字符串变为有序 结束-开始+1 就是出现的次数

String s = "DBCAABCDDBCA";


//转为字符数组
char[] chars = s.toCharArray();
System.out.println("Arrays.toString(chars) = " + Arrays.toString(chars));//[D, B, C, A, A, B, C, D, D, B, C, A]

Arrays.sort(chars);
System.out.println("Arrays.toString(chars) = " + Arrays.toString(chars));//[A, A, A, B, B, B, C, C, C, D, D, D]
//排序后转为字符串
String s1 = new String(chars);
System.out.println("s1 = " + s1);// AAABBBCCCDDD

for (int i = 0; i < s1.length(); ) {
//获取起始字符
char start = s1.charAt(i);
//获取结束下标
int lastIndexOf = s1.lastIndexOf(start);

//结束下标-开始下标+1
int count = lastIndexOf-i+1;

System.out.println(start+" ---> "+count);
//获取第二个元素的开始下标 = 结束下标+1
i = lastIndexOf+1;

}

A ---> 3
B ---> 3
C ---> 3
D ---> 3

结果如下:

统计一个字符串内所有字母出现的次数_java


 

举报

相关推荐

0 条评论