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

जावा प्रोग्राम: वाक्य में एक शब्द को एस्टेरिस्क से बदलना

उदाहरण

public class Demo { 
    static String replaceWord(String sentence, String pattern) { 
        String[] wordList = sentence.split("\\s+"); 
        String myResult = ""; 
        String asteriskVal = ""; 
        
        for (int i = 0; i < pattern.length(); i++) 
            asteriskVal += '*'; 
        
        int myIndex = 0; 
        for (String word : wordList) { 
            if (word.compareTo(pattern) == 0) 
                wordList[myIndex] = asteriskVal; 
            myIndex++; 
        } 
        
        for (String word : wordList) 
            myResult += word + ' '; 
        
        return myResult.trim(); 
    } 
    
    public static void main(String[] args) { 
        String sentence = "This is a sample only, the sky is blue, water is transparent"; 
        String pattern = "sample"; 
        System.out.println(replaceWord(sentence, pattern)); 
    } 
}

आउटपुट

This is a ****** only, the sky is blue, water is transparent

व्याख्या: Demo क्लास में 'replaceWord' नामक एक फंक्शन होता है जो वाक्य और पैटर्न को पैरामीटर के रूप में लेता है। एक वाक्य को विभाजित करके स्ट्रिंग ऐरे में संग्रहीत किया जाता है। एक खाली स्ट्रिंग परिभाषित की जाती है, और पैटर्न की लंबाई के आधार पर उस पर पुनरावृति की जाती है।

एक एस्टेरिस्क मान को '*' के रूप में परिभाषित किया जाता है और वाक्य में प्रत्येक वर्ण के लिए, वर्ण की तुलना पैटर्न से की जाती है और एक विशिष्ट घटना को एस्टेरिस्क प्रतीक से बदल दिया जाता है। अंतिम स्ट्रिंग कंसोल पर प्रदर्शित होती है।

सुधारित संस्करण (रेगुलर एक्सप्रेशन के साथ):

public static String replaceWordRegex(String sentence, String pattern) {
    // शब्द सीमाओं का उपयोग करके सटीक मिलान
    return sentence.replaceAll("\\b" + Pattern.quote(pattern) + "\\b", 
                                 "*".repeat(pattern.length()));
}

// Java 11+ के लिए repeat() मेथड, अन्यथा:
String asterisks = new String(new char[pattern.length()]).replace('\0', '*');

मुख्य सुधार:

  • \\b शब्द सीमाओं को सुनिश्चित करता है (आंशिक मिलान नहीं)
  • Pattern.quote() विशेष रेगेक्स वर्णों को एस्केप करता है
  • केस-असंवेदनशील के लिए (?i) फ्लैग जोड़ें

केस-असंवेदनशील संस्करण:

public static String replaceWordIgnoreCase(String sentence, String pattern) {
    String regex = "(?i)\\b" + Pattern.quote(pattern) + "\\b";
    String replacement = "*".repeat(pattern.length());
    return sentence.replaceAll(regex, replacement);
}
  1. - स्ट्रिंग में स्वरों की गिनती के लिए Java प्रोग्राम

    मान लीजिए निम्नलिखित हमारा स्ट्रिंग है: String myStr = Jamie; वेरिएबल काउंट = 0 सेट करें, क्योंकि हम उसी वेरिएबल में स्वरों की गणना करेंगे। प्रत्येक कैरेक्टर के माध्यम से लूप करें और स्वरों की गिनती करें: for(char ch : myStr.toCharArray()) { ch = Character.toLowerCase(ch); if(ch == a || c

  1. - पायथन प्रोग्राम: स्ट्रिंग में 'a' के सभी ऑकरेंस को $ से रिप्लेस करना

    जब स्ट्रिंग में a के सभी ऑकरेंस को $ जैसे कैरेक्टर से रिप्लेस करना होता है, तो स्ट्रिंग पर इटरेट किया जा सकता है और += ऑपरेटर का उपयोग करके रिप्लेस किया जा सकता है। उदाहरण my_str = Jane Will Rob Harry Fanch Dave Nancy changed_str = for char in range(0, len(my_str)): if(my_str[char] == a):

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

    समस्या विवरण हम एक प्रोग्राम का उपयोग वाक्य में किसी शब्द को एस्टेरिस्क से बदलने के लिए कर सकते हैं ताकि वाक्य से अभद्र शब्दों आदि को सेंसर किया जा सके। उदाहरण के लिए, यदि हमारे पास एक वाक्य है, Go feed all the ducks in the lake और एक शब्द जिसे हम एस्टेरिस्क से बदलना चाहते हैं, मान लीजिए ducks। तो