c# स्थिति के आधार पर स्ट्रिंग के हिस्से को कैसे बदलें?





7 Answers

string s = "ABCDEFGH";
s= s.Remove(3, 2).Insert(3, "ZX");
c# string replace

मेरे पास यह स्ट्रिंग है: ABCDEFGHIJ

मुझे स्ट्रिंग ZX साथ स्थिति 4 से स्थिति 5 में प्रतिस्थापित करने की आवश्यकता है

यह इस तरह दिखेगा: ABCZXFGHIJ

लेकिन string.replace("DE","ZX") साथ उपयोग नहीं करना है - मुझे स्थिति के साथ उपयोग करने की आवश्यकता है

मैं यह कैसे कर सकता हूं?




बाएं हिस्से को काटने के लिए String.Substring() ( here विवरण String.Substring() उपयोग करें, फिर अपना प्रतिस्थापन, फिर दायां हिस्सा। इंडेक्स के साथ खेलो जब तक आप इसे सही न हो :)

कुछ इस तरह:

string replacement=original.Substring(0,start)+
    rep+original.Substring(start+rep.Length);



एक विस्तार विधि के रूप में।

public static class StringBuilderExtension
{
    public static string SubsituteString(this string OriginalStr, int index, int length, string SubsituteStr)
    {
        return new StringBuilder(OriginalStr).Remove(index, length).Insert(index, SubsituteStr).ToString();
    }
}



अन्य लोगों की तरह उल्लेख किया गया है कि Substring() फ़ंक्शन एक कारण के लिए है:

static void Main(string[] args)
{
    string input = "ABCDEFGHIJ";

    string output = input.Overwrite(3, "ZX"); // 4th position has index 3
    // ABCZXFGHIJ
}

public static string Overwrite(this string text, int position, string new_text)
{
    return text.Substring(0, position) + new_text + text.Substring(position + new_text.Length);
}

इसके अलावा मैंने स्ट्रिंगबिल्डर समाधान के खिलाफ यह समय लगाया और 9 00 बनाम बनाम 875 मिल गया। तो यह थोड़ा धीमा है।




अभी तक एक और

    public static string ReplaceAtPosition(this string self, int position, string newValue)        
    {
        return self.Remove(position, newValue.Length).Insert(position, newValue); 
    }



String.substr() का उपयोग करना बेहतर है।

इस कदर:

ReplString = GivenStr.substr(0, PostostarRelStr)
           + GivenStr(PostostarRelStr, ReplString.lenght());



मेरा मानना ​​है कि सबसे आसान तरीका यह होगा: (स्ट्रिंगबिल्डर के बिना)

string myString = "ABCDEFGHIJ";
char[] replacementChars = {'Z', 'X'};
byte j = 0;

for (byte i = 3; i <= 4; i++, j++)  
{                   
myString = myString.Replace(myString[i], replacementChars[j]);  
}

यह काम करता है क्योंकि टाइप स्ट्रिंग के एक चर को चार चर के सरणी के रूप में माना जा सकता है। उदाहरण के लिए, आप स्ट्रिंग वैरिएबल के दूसरे अक्षर को "myString" नाम के साथ myString [1] के रूप में देख सकते हैं






Related