C# | Metóda Nahradiť().
V C#, Nahradiť () metóda je reťazová metóda. Táto metóda sa používa na nahradenie všetkých zadaných znakov Unicode alebo zadaného reťazca z aktuálneho objektu reťazca a vráti nový upravený reťazec. Táto metóda môže byť preťažená odovzdávaním argumentov.
Syntax:
public string Replace(char Oldchar, char Newchar) or public string Replace(string Oldvalue, string Newvalue)
Vysvetlenie:
Prvá metóda má dva parametre Oldchar a Newchar, kde Oldchar je znak Unicode, ktorý sa má nahradiť, a Newchar je znak, ktorý nahradí všetky výskyty OldChar.
Druhá metóda tiež používa dva parametre Oldvalue a Newvalue, kde Oldvalue je reťazec, ktorý sa má nahradiť, a Newvalue je reťazec, ktorý nahradí všetky výskyty Oldvalue. Hodnota návratového typu oboch metód je System.String .
Výnimky:
- ArgumentNullException : Ak OldValue alebo Oldchar sú oba null. ArgumentException Ak je OldValue alebo Oldchar prázdny reťazec ().
Nižšie sú uvedené programy na demonštráciu vyššie uvedených metód:
- Príklad 1: Program na demonštráciu public string Replace(char Oldchar, char Newchar) metóda. Všetky výskyty zadaného znaku sa nahradia iným zadaným znakom. Ak sa oldChar nenájde v aktuálnom objekte reťazca, reťazec zostane nezmenený.
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ýkon:
OldString : Geeks For Geeks NewString: GeekG For GeekG OldString: Geeks For Geeks NewString: G ks For G ksPríklad 2: Program na demonštráciu verejný reťazec Nahradiť (reťazec stará hodnota, reťazec Nová hodnota) metóda. Všetky výskyty zadaného reťazca v aktuálnej inštancii reťazca sa nahradia iným zadaným reťazcom. Ak sa Oldvalue v aktuálnom reťazci nenájde, reťazec zostane nezmenený.
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ýkon:
OldString : Geeks For Geeks NewString: --- For --- OldString: Geeks For Geeks NewString: Geeks GFG Geeks
Ak chcete vykonať viacero operácií nahradenia reťazca (Replacement’s Chain):
Vyššie uvedená metóda Replace() vracia upravený reťazec, takže teraz môžeme zreťaziť po sebe nasledujúce volania metódy Replace, aby sme v reťazci vykonali viacero nahradení. Volania metódy sa vykonávajú zľava doprava.
V nižšie uvedenom príklade bude pre daný reťazec XXXXX najprv X nahradené Y a potom Y bude nahradené Z a nakoniec Z bude nahradené A.
Prí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ýkon:
Old String: XXXXX New string: AAAAA
Dôležité body na zapamätanie:
- Metóda Replace() nemení hodnotu aktuálnej inštancie. Namiesto toho vráti nový reťazec, v ktorom sú všetky výskyty Oldvalue nahradené Newvalue, podobne oldchar sú nahradené Newchar.
- Vykonáva vyhľadávanie citlivé na veľkosť písmen, aby našiel OldValue alebo Oldchar. Ak je Newvalue null, všetky výskyty Oldvalue sú odstránené.
Referencie:
- https://msdn.microsoft.com/en-us/library/czx8s9ts(v=vs.110).aspx
- https://msdn.microsoft.com/en-us/library/fk49wtc1(v=vs.110).aspx