मैं किसी दिए गए स्ट्रिंग से एक विकल्प कैसे निकाल सकता हूं?


190

क्या Stringजावा में दिए गए विकल्प से प्रतिस्थापन निकालने का एक आसान तरीका है ?

उदाहरण: "Hello World!"हटाना "o""Hell Wrld!"

जवाबों:



9

आप StringBuffer का उपयोग कर सकते हैं

StringBuffer text = new StringBuffer("Hello World");
text.replace( StartIndex ,EndIndex ,String);

8

की जाँच करें अपाचे StringUtils :

  • static String replace(String text, String searchString, String replacement) एक स्ट्रिंग के सभी घटनाओं को दूसरे स्ट्रिंग के भीतर बदल देता है।
  • static String replace(String text, String searchString, String replacement, int max) खोज स्ट्रिंग के पहले अधिकतम मूल्यों के लिए एक बड़े स्ट्रिंग के अंदर एक अन्य स्ट्रिंग के साथ एक स्ट्रिंग को प्रतिस्थापित करता है।
  • static String replaceChars(String str, char searchChar, char replaceChar) एक चरित्र के सभी घटनाओं को दूसरे के साथ एक स्ट्रिंग में बदल देता है।
  • static String replaceChars(String str, String searchChars, String replaceChars) एक बार में एक स्ट्रिंग में कई पात्रों की जगह।
  • static String replaceEach(String text, String[] searchList, String[] replacementList) स्ट्रिंग्स की सभी घटनाओं को एक और स्ट्रिंग के भीतर बदल देता है।
  • static String replaceEachRepeatedly(String text, String[] searchList, String[] replacementList) स्ट्रिंग्स की सभी घटनाओं को एक और स्ट्रिंग के भीतर बदल देता है।
  • static String replaceOnce(String text, String searchString, String replacement) एक बार एक बड़े स्ट्रिंग के अंदर एक और स्ट्रिंग के साथ एक स्ट्रिंग को बदलता है।
  • static String replacePattern(String source, String regex, String replacement) स्रोत के प्रत्येक प्रतिस्थापन को प्रतिस्थापित करता है स्ट्रिंग जो नियत प्रतिस्थापन के साथ दिए गए नियमित अभिव्यक्ति से मेल खाता है।

1
सिर्फ रिप्लेसपैटर्न को बेंचमार्क किया और कस्टम जावा कोड चलाने की तुलना में यह 6x धीमा है।
एलेक्स अरवनीतिदिस

6
replace('regex', 'replacement');
replaceAll('regex', 'replacement');

आपके उदाहरण में,

String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");

4

यह मेरे लिए अच्छा काम करता है।

String hi = "Hello World!"
String no_o = hi.replaceAll("o", "");

या आप उपयोग कर सकते हैं

String no_o = hi.replace("o", "");

3

आपको यह देखना चाहिए कि StringBuilder/StringBufferआपको निर्दिष्ट ऑफ़सेट में कौन सी चीज़ों को हटाने, डालने, बदलने की जगह चाहिए ।



1
replaceAll(String regex, String replacement)

उपरोक्त विधि से उत्तर प्राप्त करने में मदद मिलेगी।

String check = "Hello World";
check = check.replaceAll("o","");

1

आप मौजूदा स्ट्रिंग के साथ प्रतिस्थापन के लिए सबस्ट्रिंग का भी उपयोग कर सकते हैं:

var str = "abc awwwa";
var Index = str.indexOf('awwwa');
str = str.substring(0, Index);

0

यहां दिए गए स्ट्रिंग से सभी सबस्ट्रिंग को हटाने के लिए कार्यान्वयन है

public static String deleteAll(String str, String pattern)
{
    for(int index = isSubstring(str, pattern); index != -1; index = isSubstring(str, pattern))
        str = deleteSubstring(str, pattern, index);

    return str;
}

public static String deleteSubstring(String str, String pattern, int index)
{
    int start_index = index;
    int end_index = start_index + pattern.length() - 1;
    int dest_index = 0;
    char[] result = new char[str.length()];


    for(int i = 0; i< str.length() - 1; i++)
        if(i < start_index || i > end_index)
            result[dest_index++] = str.charAt(i);

    return new String(result, 0, dest_index + 1);
}

IsSubstring () पद्धति का कार्यान्वयन यहाँ है


0
private static void replaceChar() {
    String str = "hello world";
    final String[] res = Arrays.stream(str.split(""))
            .filter(s -> !s.equalsIgnoreCase("o"))
            .toArray(String[]::new);
    System.out.println(String.join("", res));
}

यदि आपके पास चार को छानने के लिए कुछ जटिल तर्क हैं, तो इसके बजाय सिर्फ एक और तरीका है replace()


0

यदि आप प्रारंभ और अंत सूचकांक जानते हैं तो आप इसका उपयोग कर सकते हैं

string = string.substring(0, start_index) + string.substring(end_index, string.length());
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.