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

C# में स्ट्रिंग में शब्दों की संख्या गिनना

स्ट्रिंग में शब्दों की गिनती के लिए हम व्हाइटस्पेस कैरेक्टर्स (स्पेस, टैब, नई लाइन) को विभाजक (डिलीमीटर) के रूप में उपयोग करते हैं।

उदाहरण: मैन्युअल लूप

using System;

public class Demo {
    public static void Main() {
        int index = 0, wordCount = 1; // कम से कम 1 शब्द मानकर
        string str = "Hello World!";

        while (index <= str.Length - 1) {
            if (str[index] == ' ' || str[index] == '\n' || str[index] == '\t') {
                wordCount++;
            }
            index++;
        }

        Console.Write("Number of words in the string = {0}\n", wordCount);
    }
}

आउटपुट

Number of words in the string = 2

समस्याएं इस दृष्टिकोण में

  • लगातार स्पेस एकाधिक शब्द गिनते हैं ("Hello World" → 3 शब्द)।
  • <लीडिंग/ट्रेलिंग स्पेस गलत गिनती देते हैं।
  • खाली स्ट्रिंग के लिए 1 लौटाता है (गलत)।

बेहतर: Split + RemoveEmptyEntries

string str = "Hello   World!  ";
int count = str.Split(new[] { ' ', '\t', '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries).Length;
Console.WriteLine(count); // 2

सबसे अच्छा: Regex (शब्द सीमाओं के साथ)

using System.Text.RegularExpressions;

int count = Regex.Matches(str, @"\b\w+\b").Count;
// या केवल शब्द कैरेक्टर्स
int count = Regex.Matches(str, @"[\p{L}\p{N}']+").Count;

LINQ के साथ

using System.Linq;

int count = str.Split(new[] { ' ', '\t', '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries).Length;

किनारे के मामले संभालना

public static int CountWords(string str) {
    if (string.IsNullOrWhiteSpace(str)) return 0;

    return str.Split(new[] { ' ', '\t', '\n', '\r' }, StringSplitOptions.RemoveEmptyEntries).Length;
}

// टेस्ट
Console.WriteLine(CountWords(""));           // 0
Console.WriteLine(CountWords("   "));        // 0
Console.WriteLine(CountWords("Hello"));      // 1
Console.WriteLine(CountWords("Hello World")); // 2
Console.WriteLine(CountWords("  Hello   World  ")); // 2

मुख्य बिंदु

  • मैन्युअल लूप त्रुटि-प्रवण है - Split या Regex उपयोग करें।
  • StringSplitOptions.RemoveEmptyEntries लगातार डिलीमीटर्स को संभालता है।
  • Regex \b\w+\b शब्द सीमाओं को सही ढंग से पहचानता है।
  • अपोस्ट्रोफी वाले शब्द ("don't") के लिए Regex पैटर्न समायोजित करें।
  1. Python प्रोग्राम से सेट का उपयोग करके दी गई स्ट्रिंग में स्वरों की संख्या गिनना Python प्रोग्राम से सेट का उपयोग करके दी गई स्ट्रिंग में स्वरों की संख्या गिनना

    इस लेख में, हम नीचे दिए गए समस्या कथन के समाधान के बारे में जानेंगे। समस्या कथन - हमें एक स्ट्रिंग दी गई है, हमें सेट का उपयोग करके दी गई स्ट्रिंग में स्वरों की संख्या गिनने की आवश्यकता है। यहां हम पूरी स्ट्रिंग को पार करते हैं और जांचते हैं कि प्रत्येक वर्ण स्वर है या नहीं और काउंट बढ़ाते हैं। आ

  1. - पायथन प्रोग्राम: दिए गए स्ट्रिंग में शब्द गिनें

    स्ट्रिंग में शब्दों की संख्या गिनने के कई तरीके हैं। सरल दृष्टिकोण व्हाइटस्पेस सेपरेटर का उपयोग करता है। विधि 1: फोर लूप (मूल) def count_words_for(text): total = 1 # कम से कम एक शब्द (यदि खाली नहीं) for i in range(len(text)): if text[i] in ( , \n, \t): total += 1 re

  1. - पायथन प्रोग्राम: सेट का उपयोग करके दिए गए स्ट्रिंग में वॉवेल्स की संख्या गिनना

    इस प्रोग्राम में, एक यूजर इनपुट स्ट्रिंग दी गई है। हमें इस स्ट्रिंग में वॉवेल्स की संख्या गिननी है। यहां हम पायथन में सेट का उपयोग करते हैं। सेट एक अनऑर्डर्ड कलेक्शन डेटा टाइप है जो इटरेबल, म्यूटेबल है और इसमें कोई डुप्लिकेट एलिमेंट्स नहीं होते।उदाहरणInput: str1=pythonprogram Output: 3एल्गोरिदमचरण 1