java - How can I count the frequency of words without using Collections? -
परिणाम
0: भालू 1: कार 2: भालू 3: बिल्ली 4: कार 5: कुत्ता 6: भालू --- आवृत्ति --- भालू: 1 कार: 1 नल: 1 कैट: 1 नल: 1 कुत्ता: 1 नल: 1
< P> कोड आयात करें java.util.Arrays; आयात करें java.util.StringTokenizer; सार्वजनिक वर्ग वर्डकाउंट {सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {स्ट्रिंग टेक्स्ट = "भालू कार भालू बिल्ली कार डॉग भालू"; स्ट्रिंगटोकनाइज़र str = नया स्ट्रिंगटोकनाइज़र (पाठ); स्ट्रिंग शब्द [] = नई स्ट्रिंग [10]; स्ट्रिंग अनूठा [] = नई स्ट्रिंग [10]; स्ट्रिंग w; Int count = -1; जबकि (str.hasMoreTokens ()) {count ++; W = str.nextToken (); शब्द [गणना] = w; System.out.println (गणना + ":" + शब्द [गणना]); } System.out.println ("--- फ़्रिक्वेंसी ---"); // अद्वितीय शब्दों के लिए (इंट I = 0; i & lt; 7; i ++) {if ((!! Arrays.asList (अद्वितीय) के लिए बनायें। (शब्द [i]) शामिल हैं) {अद्वितीय [i] = शब्द [i] ; }} // आवृत्ति आवृत्ति को मापने [] उपाय = नया इंट [10]; के लिए (int z = 0; z
आपके वर्तमान कोड में कई समस्याएं हैं:
- आप स्पष्ट रूप से
संग्रह
इंटरफ़ेस का उपयोग कर रहे हैं यह हर बार किया जाता है जब आपarrays # asList (...)
पर कॉल करते हैं। आप अपनी मुख्य आवश्यकता को पूरा नहीं कर रहे हैं। - आप अपने सभी एरे में तत्वों के लिए एक काउंटर बनाए रखना चाहिए। इस मामले में, आप
अद्वितीय
औरमाप
arrays दोनों के आकार को पकड़ने के लिए एक ही चर का उपयोग कर सकते हैं। -
को भरने के लिए आपका एल्गोरिथम
गलत है आपको केवल एक बार शब्द जोड़ना चाहिए (क्योंकि यह अद्वितीय होना चाहिए)। - आपको
माप
के लिए प्रति बार केवल एक बार प्रतिजोड़ना चाहिए स्ट्रिंग
इनअनोखा
एरे।
यह कोड इन सभी सिफारिशों को ध्यान में रखता है।
import java.util .StringTokenizer; सार्वजनिक वर्ग तेरहवीं मुख्य {सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग [] आर्ग्स) {स्ट्रिंग टेक्स्ट = "भालू कार भालू बिल्ली कार डॉग भालू"; स्ट्रिंगटोकनाइज़र str = नया स्ट्रिंगटोकनाइज़र (पाठ); स्ट्रिंग शब्द [] = नई स्ट्रिंग [10]; स्ट्रिंग अनूठा [] = नई स्ट्रिंग [10]; // शब्द पढ़ने के लिए int wordSize = 0 का विश्लेषण; जबकि (str.hasMoreTokens ()) {स्ट्रिंग w = str.nextToken (); शब्द [शब्दसिझन] = w; System.out.println (शब्दसिज़्म + ":" + शब्द [शब्दसजिज]); wordSize ++; } System.out.println ("--- फ़्रिक्वेंसी ---"); // अनूठे शब्द बनाने के लिए अनन्य वर्डसिज़ = 0; के लिए (int i = 0; i & lt; wordSize; i ++) {बूलियन पाया = झूठा; (इंट जे = 0; जे एंड एलटी; अनन्य वर्डसिज़; जे ++) के लिए (यदि (शब्द [i] .अबल (अद्वितीय [जे])) {found = true; टूटना; }} अगर ((पाया!) {अद्वितीय [अद्वितीय WordSize ++] = शब्द [i]; }} // आवृत्ति आवृत्ति को मापने [] उपाय = नया इंट [10]; के लिए (इंट I = 0; i & lt; अनूठे वर्डसिज़; आई ++) {के लिए (इंट जे = 0; जे एंड एलटी; वर्डसिज़ि; जे ++) {यदि (अनूठे [आई] .अगले (शब्द [जे]) {उपाय [आई] ++; }}} // प्रिंटिंग परिणाम के लिए (इंट आई = 0; आई & lt; अनोखे वर्डसिज़; आई ++) {System.out.println (अद्वितीय [i] + ":" + माप [i]); }}}
यह प्रिंट करता है:
0: भालू 1: कार 2: भालू 3: बिल्ली 4: कार 5: कुत्ता 6: भालू - -स्वारता --- भालू: 3 कार: 2 बिल्ली: 1 कुत्ता: 1
Comments
Post a Comment