Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Java

जावा प्रोग्राम: दिए गए वाक्य में प्रत्येक शब्द के वर्णों की गिनती

उदाहरण

import java.util.*; 

public class Demo { 
    static final int MAX_CHARS = 256; 
    
    static void charOccurrence(String myStr) { 
        int[] count = new int[MAX_CHARS]; 
        int strLen = myStr.length(); 
        
        for (int i = 0; i < strLen; i++) 
            count[myStr.charAt(i)]++; 
        
        char[] ch = new char[strLen]; 
        for (int i = 0; i < strLen; i++) { 
            ch[i] = myStr.charAt(i); 
            int find = 0; 
            for (int j = 0; j <= i; j++) { 
                if (myStr.charAt(i) == ch[j]) 
                    find++; 
            } 
            if (find == 1) 
                System.out.println("वर्ण " + myStr.charAt(i) + " की घटनाओं की संख्या: " + count[myStr.charAt(i)]); 
        } 
    } 
    
    public static void main(String[] args) { 
        Scanner myScan = new Scanner(System.in); 
        String myStr = "This is a sample"; 
        charOccurrence(myStr); 
    } 
}

आउटपुट

वर्ण T की घटनाओं की संख्या: 1
वर्ण h की घटनाओं की संख्या: 1
वर्ण i की घटनाओं की संख्या: 2
वर्ण s की घटनाओं की संख्या: 3
वर्ण  की घटनाओं की संख्या: 3
वर्ण a की घटनाओं की संख्या: 2
वर्ण m की घटनाओं की संख्या: 1
वर्ण p की घटनाओं की संख्या: 1
वर्ण l की घटनाओं की संख्या: 1
वर्ण e की घटनाओं की संख्या: 1

व्याख्या: Demo क्लास में 'charOccurrence' फंक्शन होता है जो स्ट्रिंग के माध्यम से पुनरावृति करता है और प्रत्येक वर्ण को गिनता है और इसकी गिनती को काउंट ऐरे में संबंधित वर्ण को असाइन करता है। मुख्य फंक्शन में, कंसोल से इनपुट पढ़ने के लिए एक Scanner क्लास ऑब्जेक्ट बनाया जाता है। फंक्शन को स्ट्रिंग पर कॉल किया जाता है और प्रत्येक वर्ण की गिनती कंसोल पर प्रदर्शित होती है।

शीर्षक स्पष्टीकरण:

शीर्षक "प्रत्येक शब्द में वर्ण गिनें" कहता है लेकिन कोड पूरे स्ट्रिंग में प्रत्येक वर्ण गिनता है। शब्द-वार गिनती के लिए:

शब्द-वार वर्ण गिनती:

public static void countCharsPerWord(String sentence) {
    String[] words = sentence.split("\\s+");
    for (String word : words) {
        Map freq = new LinkedHashMap<>();
        for (char c : word.toCharArray()) {
            freq.merge(c, 1, Integer::sum);
        }
        System.out.println("शब्द: '" + word + "' -> " + freq);
    }
}

// आउटपुट:
// शब्द: 'This' -> {T=1, h=1, i=1, s=1}
// शब्द: 'is' -> {i=1, s=1}
// शब्द: 'a' -> {a=1}
// शब्द: 'sample' -> {s=1, a=1, m=1, p=1, l=1, e=1}

मूल कोड विश्लेषण:

  • समय जटिलता: O(n²) - नेस्टेड लूप डुप्लिकेट जांच के लिए
  • स्पेस और विराम चिह्न गिनता है
  • केस-संवेदनशील

अनुकूलित संस्करण (पूरे स्ट्रिंग के लिए):

public static void charOccurrenceOptimized(String str) {
    int[] count = new int[256];
    for (char c : str.toCharArray()) count[c]++;
    
    boolean[] printed = new boolean[256];
    for (char c : str.toCharArray()) {
        if (!printed[c]) {
            System.out.println(c + ": " + count[c]);
            printed[c] = true;
        }
    }
}
// O(n) समय, O(1) स्थान
  1. Java में संख्या गिनने का प्रोग्राम कैसे लागू करें? Java में संख्या गिनने का प्रोग्राम कैसे लागू करें?

    प्रोग्राम एक JLabel का उपयोग काउंट लेबल रखने के लिए करता है, एक JTextField घटक संख्या काउंट रखने के लिए, JButton घटक जोड़ें, हटाएं और रीसेट बटन बनाने के लिए। जब हम ऐड बटन पर क्लिक करते हैं, तो JTextField में काउंट 1 से बढ़ जाता है और रिमूव बटन पर क्लिक करके काउंट 1 से घट जाता है। यदि हम रीसेट बटन प

  1. पायथन में प्रत्येक ब्रैकेट गहराई में वर्णों की संख्या गिनने का प्रोग्राम पायथन में प्रत्येक ब्रैकेट गहराई में वर्णों की संख्या गिनने का प्रोग्राम

    मान लीजिए हमारे पास एक स्ट्रिंग s है जिसमें केवल तीन वर्ण X, ( , और ) हैं। स्ट्रिंग में संतुलित ब्रैकेट हैं और बीच में कुछ X हैं साथ ही संभवतः नेस्टेड ब्रैकेट भी पुनरावर्ती रूप से हो सकते हैं। हमें s में ब्रैकेट की प्रत्येक गहराई पर X की संख्या ढूंढनी है, सबसे उथली गहराई से सबसे गहरी गहराई तक शुरू क

  1. - पायथन में स्ट्रिंग्स की जोड़ी में मिलान वर्णों की संख्या गिनें

    हमें दो स्ट्रिंग्स दी गई हैं। हमें पहली स्ट्रिंग में उन वर्णों की गिनती ढूंढनी है जो दूसरी स्ट्रिंग में भी मौजूद हैं। set के साथ set फ़ंक्शन हमें स्ट्रिंग में सभी तत्वों के अद्वितीय मान देता है। हम & ऑपरेटर का भी उपयोग करते हैं जो दो दी गई स्ट्रिंग्स के बीच सामान्य तत्व ढूंढता है। उदाहरण strA = Tut