欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

JAVA(字符串的遍历,求每个字符出现的次数)

程序员文章站 2024-03-05 12:50:30
...

Map遍历

package org.baojiwenli.collection;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.println("请输入一段字符串:");
        String s = input.next();
        System.out.println("字符串的总长度:"+s.length());



        Map<Character,Integer> result = new HashMap<Character, Integer>();
        for(int i = 0; i < s.length(); i++){
            char ch = s.charAt(i);
            if(result.get(ch) != null){
                result.put(ch,result.get(ch)+1);
            }else{
                result.put(ch,1);
            }
        }
        for(Map.Entry entry: result.entrySet()){
            System.out.println(entry.getKey()+"->"+entry.getValue());
        }
        System.out.println("字符串总长度(不包括一样的字符):"+result.size());

    }
}

JAVA(字符串的遍历,求每个字符出现的次数)

传统的For循环遍历+数组

package org.baojiwenli.collection;

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class test {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("请输入一个字符串:");
        String a = sc.next();
        StringConstitute(a);
    }
    //寻找一个字符串中各个字符出现的个数
    public static void StringConstitute(String str) {
        // 用于记录字符种类(可边长类型String)
        StringBuffer recordType = new StringBuffer();
        // 用于记录字符个数:定义一个一维数组
        int[] recordNumber = new int[str.length()];
        for (int i = 0; i < str.length(); i++) {
            // 用于临时计数
            int count = 0;
            // str.charAt(i)的值赋给medium
            String medium = str.charAt(i) + "";
            // 判断recordType中没有medium中的字符
            if (!recordType.toString().contains(medium)) {
                // 将medium中的字符添加到recordType中
                recordType.append(medium);
                count++;
                // 用于计算medium中的字符在字符串中的个数
                for (int j = i + 1; j < str.length(); j++) {
                    // 如果str.charAt(j)中的字符与medium中的字符相同时
                    if (medium.equals(str.charAt(j) + "")) {
                        count++;
                    }
                }
                // 将计数工具的值赋给recordNumber数组
                recordNumber[recordType.length()] = count;
            }
        }
        System.out.println("字符串\"" + str + "\"共有" + recordType.length() + "种字符");
        for (int i = 0; i < recordType.length(); i++) {
            System.out.println("字符\'" + recordType.charAt(i) + "\'共有" + recordNumber[i + 1] + "个");
        }
    }

}

JAVA(字符串的遍历,求每个字符出现的次数)

相关标签: java