C# | Metoda Nahradit().
V C#, Nahradit() metoda je řetězcová metoda. Tato metoda se používá k nahrazení všech zadaných znaků Unicode nebo zadaného řetězce z aktuálního objektu string a vrátí nový upravený řetězec. Tato metoda může být přetížena předáním argumentů.
Syntax:
public string Replace(char Oldchar, char Newchar) or public string Replace(string Oldvalue, string Newvalue)
Vysvětlení:
První metoda má dva parametry Oldchar a Newchar, kde Oldchar je znak Unicode, který má být nahrazen, a Newchar je znak, který nahradí všechny výskyty OldChar.
Druhá metoda také používá dva parametry Oldvalue a Newvalue, kde Oldvalue je řetězec, který má být nahrazen, a Newvalue je řetězec, který nahradí všechny výskyty Oldvalue. Hodnota návratového typu obou metod je System.String .
Výjimky:
- ArgumentNullException : Pokud jsou OldValue nebo Oldchar obě null. ArgumentException Pokud je OldValue nebo Oldchar prázdný řetězec ().
Níže jsou uvedeny programy demonstrující výše uvedené metody:
- Příklad 1: Program pro demonstraci veřejný řetězec Nahradit(char Oldchar, char Newchar) metoda. Všechny výskyty zadaného znaku jsou nahrazeny jiným zadaným znakem. Pokud oldChar není v aktuálním objektu string nalezen, řetězec zůstane nezměněn.
Input : str = 'GeeksForGeeks' str.Replace('s', 'G'); Output: GeekGForGeekG Input : str = 'GeeksForGeeks' str.Replace('e', ' '); Output: G ksForG ks
// C# program to illustrate the Replace()> // Method with character parameter> using> System;> > class> Geeks {> > > // Main Method> > public> static> void> Main()> > {> > > // string> > String str => 'Geeks For Geeks'> ;> > > Console.WriteLine(> 'OldString : '> + str);> > > // replace the character 's' with 'G'> > Console.WriteLine(> 'NewString: '> + str.Replace(> 's'> ,> 'G'> ));> > > // oldString will remain unchanged> > // its return the modified string> > Console.WriteLine(> '
OldString: '> + str);> > > // replace the character 'e' with space ' '> > Console.WriteLine(> 'NewString: '> + str.Replace(> 'e'> ,> ));> > }> }> |
Výstup:
OldString : Geeks For Geeks NewString: GeekG For GeekG OldString: Geeks For Geeks NewString: G ks For G ksPříklad 2: Program pro demonstraci veřejný řetězec Nahradit (řetězec stará hodnota, řetězec Nová hodnota) metoda. Všechny výskyty zadaného řetězce v aktuální instanci řetězce jsou nahrazeny jiným zadaným řetězcem. Pokud Oldvalue není v aktuálním řetězci nalezen, zůstane řetězec nezměněn.
Input: str = 'Geeks For Geeks' str.Replace('Geeks', '---'); Output: --- For --- Input: str = 'Geeks For Geeks' str.Replace('For', 'GFG'); Output: Geeks GFG Geeks
// C# program to illustrate the Replace> // Method with string parameter> using> System;> > class> Geeks {> > > // Main Method> > public> static> void> Main()> > {> > > // define string> > String str => 'Geeks For Geeks'> ;> > > Console.WriteLine(> 'OldString : '> + str);> > > // replace the string 'Geeks' with '---'> > // in string 'Geeks comes two time so replace two times> > Console.WriteLine(> 'NewString: '> + str.Replace(> 'Geeks'> ,> '---'> ));> > > // oldString will remain unchanged> > // its return the modified string> > Console.WriteLine(> '
OldString: '> + str);> > > // replace the string 'For' with 'GFG'> > Console.WriteLine(> 'NewString: '> + str.Replace(> 'For'> ,> 'GFG'> ));> > }> }> |
Výstup:
OldString : Geeks For Geeks NewString: --- For --- OldString: Geeks For Geeks NewString: Geeks GFG Geeks
Chcete-li provést více operací nahrazení na řetězci (Replacement’s Chain):
Výše uvedená metoda Replace() vrací upravený řetězec, takže nyní můžeme zřetězit po sobě jdoucí volání metody Replace k provedení vícenásobného nahrazení řetězce. Volání metody se provádějí zleva doprava.
V níže uvedeném příkladu bude pro daný řetězec XXXXX nejprve X nahrazeno Y a poté Y nahrazeno Z a nakonec Z bude nahrazeno A.
Příklad:
// C# program to demonstrate the> // multiple replacements calls> using> System;> > public> class> Geeks{> > > // Main Method> > public> static> void> Main()> > {> > String str => 'XXXXX'> ;> > Console.WriteLine(> 'Old String: '> + str);> > > // chain together> > str = str.Replace(> 'X'> ,> 'Y'> ).Replace(> 'Y'> ,> 'Z'> ).Replace(> 'Z'> ,> 'A'> );> > Console.WriteLine(> 'New string: '> + str);> > }> }> |
Výstup:
Old String: XXXXX New string: AAAAA
Důležité body k zapamatování:
- Metoda Replace() nemění hodnotu aktuální instance. Místo toho vrací nový řetězec, ve kterém jsou všechny výskyty Oldvalue nahrazeny Newvalue, podobně oldchar jsou nahrazeny Newchar.
- Provádí vyhledávání s rozlišením velkých a malých písmen, aby našel OldValue nebo Oldchar. Pokud je Newvalue null, všechny výskyty Oldvalue jsou odstraněny.
Reference:
- https://msdn.microsoft.com/en-us/library/czx8s9ts(v=vs.110).aspx
- https://msdn.microsoft.com/en-us/library/fk49wtc1(v=vs.110).aspx