Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

Java Program นับจำนวนครั้งของแต่ละ Character ใน String

สมมติมี String:

String myStr = "thisisit";

นับ Occurrences ด้วย HashMap Loop ผ่าน String ใช้ containsKey() และ charAt()

HashMap<Character, Integer> hashMap = new HashMap<>();
for (int i = myStr.length() - 1; i >= 0; i--) {
    if (hashMap.containsKey(myStr.charAt(i))) {
        int count = hashMap.get(myStr.charAt(i));
        hashMap.put(myStr.charAt(i), ++count);
    } else {
        hashMap.put(myStr.charAt(i), 1);
    }
}

ตัวอย่างโค้ดเต็ม

import java.util.HashMap;

public class Demo {
    public static void main(String[] args) {
        String myStr = "thisisit";
        System.out.println("String = " + myStr);
        
        HashMap<Character, Integer> hashMap = new HashMap<>();
        for (int i = myStr.length() - 1; i >= 0; i--) {
            if (hashMap.containsKey(myStr.charAt(i))) {
                int count = hashMap.get(myStr.charAt(i));
                hashMap.put(myStr.charAt(i), ++count);
            } else {
                hashMap.put(myStr.charAt(i), 1);
            }
        }
        System.out.println("Counting occurrences of each character = " + hashMap);
    }
}

ผลลัพธ์

String = thisisit
Counting occurrences of each character = {s=2, t=2, h=1, i=3}

วิธีอื่น (Java 8+ Streams):

Map<Character, Long> freq = myStr.chars()
    .mapToObj(c -> (char) c)
    .collect(Collectors.groupingBy(c -> c, Collectors.counting()));

ประโยชน์: Frequency Analysis, Anagram Detection, Character Statistics, Compression Algorithms