【Java】判断字符串中有多少种字符,以及各个字符的个数

【任务】

求字符串中的字符种类和各个字符的个数

【分析】

  1. 要想知道字符串的字符种类,肯定要看字符串的组成,可以通过循环遍历字符串中的字符来实现。把遍历过的字符储存到StringBuffer中,当遇到与StringBuffer中相同的字符就跳过,否则就继续储存,直到遍历完,StringBuffer的长度就是字符的种类个数
  2. 因为还要计算各个字符的个数,所以可以在第一层循环中再嵌套一个循环,并定义一个计算工具和一个数组,以用来计算各个字符的个数。在(1)储存字符之前,先定义一个计算工具,然后再储存字符,并遍历该位置字符后面的字符,若遇到与该位置字符相同的就个数加1,否则,就跳过。待遍历完之后,将计算工具的值赋值给数组

【实现】

package wyph.task02;

import java.util.Scanner;

public class Task13 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个字符串:");
        String a = sc.nextLine();
        StringConstitute(a);
    }

    public static void StringConstitute(String args) {
        // 用于记录字符种类
        StringBuffer recordType = new StringBuffer();
        // 用于记录字符个数
        int[] recordNumber = new int[args.length()];
        for (int i = 0; i < args.length(); i++) {
            // 用于临时计数
            int count = 0;
            // 将args.charAt(i)的值赋给medium
            String medium = args.charAt(i) + "";
            // 判断recordType中没有medium中的字符
            if (!recordType.toString().contains(medium)) {
                // 将medium中的字符添加到recordType中
                recordType.append(medium);
                count++;
                // 用于计算medium中的字符在字符串中的个数
                for (int j = i + 1; j < args.length(); j++) {
                    // 如果args.charAt(j)中的字符与medium中的字符相同时
                    if (medium.equals(args.charAt(j) + "")) {
                        count++;
                    }
                }
                // 将计数工具的值赋给recordNumber数组
                recordNumber[recordType.length()] = count;
            }
        }
        System.out.println("字符串\"" + args + "\"共有" + recordType.length() + "种字符");
        for (int i = 0; i < recordType.length(); i++) {
            System.out.println("字符\'" + recordType.charAt(i) + "\'共有" + recordNumber[i + 1] + "个");
        }
    }
}

 

    原文作者:豆腐多多丶
    原文地址: https://blog.csdn.net/qq_22846467/article/details/85245916
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞