C# | Метод Replace().
У C#, Замінити() метод є методом рядка. Цей метод використовується для заміни всіх указаних символів Unicode або вказаного рядка з поточного об’єкта рядка та повертає новий змінений рядок. Цей метод можна перевантажити, передаючи йому аргументи.
Синтаксис:
public string Replace(char Oldchar, char Newchar) or public string Replace(string Oldvalue, string Newvalue)
Пояснення:
Перший метод приймає два параметри Oldchar і Newchar, де Oldchar — символ Юнікоду, який потрібно замінити, а Newchar — це символ, який замінює всі входження OldChar.
Другий метод також приймає два параметри Oldvalue і Newvalue, де Oldvalue — це рядок, який потрібно замінити, а Newvalue — це рядок, який замінює всі входження Oldvalue. Повернене значення типу обох методів є System.String .
Винятки:
- ArgumentNullException: якщо OldValue або Oldchar обидва мають значення null. ArgumentException Якщо OldValue або Oldchar є порожнім рядком ().
Нижче наведено програми для демонстрації вищевказаних методів:
- Приклад 1: Програма для демонстрації загальнодоступний рядок Replace(char Oldchar, char Newchar) метод. Усі входження вказаного символу замінюються на інший вказаний символ. Якщо oldChar не знайдено в поточному рядковому об’єкті, то рядок залишається незмінним.
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'> ,> ' '> ));> > }> }> |
Вихід:
OldString : Geeks For Geeks NewString: GeekG For GeekG OldString: Geeks For Geeks NewString: G ks For G ksПриклад 2: Програма для демонстрації public string Replace(string Oldvalue, string Newvalue) метод. Усі входження зазначеного рядка в поточний екземпляр рядка замінюються на інший вказаний рядок. Якщо Oldvalue не знайдено в поточному рядку, то рядок залишається незмінним.
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'> ));> > }> }> |
Вихід:
OldString : Geeks For Geeks NewString: --- For --- OldString: Geeks For Geeks NewString: Geeks GFG Geeks
Щоб виконати декілька операцій заміни над рядком (ланцюжком заміни):
Наведений вище метод Replace() повертає змінений рядок, тож тепер ми можемо об’єднати послідовні виклики методу Replace для виконання кількох замін у рядку. Виклики методів виконуються зліва направо.
У наведеному нижче прикладі для заданого рядка XXXXX спочатку X буде замінено на Y, потім Y буде замінено на Z і, нарешті, Z буде замінено на A.
приклад:
// 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);> > }> }> |
Вихід:
Old String: XXXXX New string: AAAAA
Важливі моменти, про які слід пам'ятати:
- Метод Replace() не змінює значення поточного екземпляра. Замість цього він повертає новий рядок, у якому всі входження Oldvalue замінено на Newvalue, аналогічно oldchar замінено на Newchar.
- Він виконує пошук з урахуванням регістру, щоб знайти OldValue або Oldchar. Якщо Newvalue дорівнює null, усі випадки Oldvalue видаляються.
Література:
- https://msdn.microsoft.com/en-us/library/czx8s9ts(v=vs.110).aspx
- https://msdn.microsoft.com/en-us/library/fk49wtc1(v=vs.110).aspx