今天掌握了获取一个字符串中,相同字符个数的方法;
主要思路是把字符串存入一个字节数组,然后通过两层for循环嵌套,两两比较,在外层放一个count清零,内层count计数;为了记住这个算法,我把方法敲了两遍,彻底理解~
- public class ListTest01 {
- public static void getStr(){
- String str = "abcdabcd";
- // 把字符串转为byte 字节数组
- byte[] bt = str.getBytes();
- for (int i = 0; i < bt.length; i++) {
- int count = 0;
- // 定义一个变量保存字符出现的次数
- for (int j = 0; j < bt.length; j++) {
- // 内外循环进行比对,如果出现相同的字符,count+1
- if(bt[i] == bt[j]){
- count++;
- }
- }//把 byte的 ASCUU 转为char类型
- char c = (char)bt[i];
- // 在内循环结束后输出,这样外循环开始时,count清零
- System.out.println(c+"有"+count+"个");
- }
- }
- public static void strCatch(){
- String st = "asdwersdfshfd";
- byte[] bt = st.getBytes();
- for (int i = 0; i < bt.length; i++) {
- int count = 0;
- for (int j = 0; j < bt.length; j++) {
- if(bt[i] == bt[j]){
- count++;
- }
- }
- char c = (char)bt[i];
- System.out.println(c+" 有 "+count+" 个");
- }
- }
- public static void main(String[] args) {
- //getStr();
- strCatch();
- }
- }