C# | Metoda Zamień().
W języku C# Zastępować() metoda jest metodą łańcuchową. Ta metoda służy do zastąpienia wszystkich określonych znaków Unicode lub określonego ciągu z bieżącego obiektu ciągu i zwraca nowy zmodyfikowany ciąg. Metodę tę można przeciążyć, przekazując do niej argumenty.
Składnia:
public string Replace(char Oldchar, char Newchar) or public string Replace(string Oldvalue, string Newvalue)
Wyjaśnienie:
Pierwsza metoda przyjmuje dwa parametry Oldchar i Newchar, gdzie Oldchar jest znakiem Unicode, który ma zostać zastąpiony, a Newchar jest znakiem zastępującym wszystkie wystąpienia OldChar.
Druga metoda również przyjmuje dwa parametry Oldvalue i Newvalue, gdzie Oldvalue to ciąg znaków, który ma zostać zastąpiony, a Newvalue to ciąg znaków zastępujący wszystkie wystąpienia Oldvalue. Wartość typu zwracanego przez obie metody to System.String .
Wyjątki:
- ArgumentNullException: Jeśli oba typy OldValue lub Oldchar mają wartość null. ArgumentException Jeśli OldValue lub Oldchar jest pustym ciągiem znaków ().
Poniżej znajdują się programy demonstrujące powyższe metody:
- Przykład 1: Program demonstrujący ciąg publiczny Zamień(char Oldchar, char Newchar) metoda. Wszystkie wystąpienia określonego znaku są zastępowane innym określonym znakiem. Jeśli w bieżącym obiekcie string nie zostanie znaleziony oldChar, wówczas string pozostanie niezmieniony.
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'> ,> ' '> ));> > }> }> |
Wyjście:
OldString : Geeks For Geeks NewString: GeekG For GeekG OldString: Geeks For Geeks NewString: G ks For G ksPrzykład 2: Program demonstrujący ciąg publiczny Zamień (string Stara wartość, ciąg Nowa wartość) metoda. Wszystkie wystąpienia określonego ciągu w bieżącej instancji ciągu są zastępowane innym określonym ciągiem. Jeśli w bieżącym ciągu nie zostanie znaleziona wartość Oldvalue, wówczas ciąg pozostanie niezmieniony.
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'> ));> > }> }> |
Wyjście:
OldString : Geeks For Geeks NewString: --- For --- OldString: Geeks For Geeks NewString: Geeks GFG Geeks
Aby wykonać wielokrotne operacje zamiany na ciągu (łańcuchu zamiany):
Powyższa metoda Zamień() zwraca zmodyfikowany ciąg znaków, więc teraz możemy połączyć w łańcuch kolejne wywołania metody Zamień, aby wykonać wielokrotne zamiany ciągu. Wywołania metod są wykonywane od lewej do prawej.
W poniższym przykładzie dla danego ciągu XXXXX najpierw X zostanie zastąpione przez Y, następnie Y zostanie zastąpione przez Z, a na koniec Z zostanie zastąpione przez A.
Przykład :
// 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);> > }> }> |
Wyjście:
Old String: XXXXX New string: AAAAA
Ważne punkty do zapamiętania:
- Metoda Zamień() nie modyfikuje wartości bieżącej instancji. Zamiast tego zwraca nowy ciąg, w którym wszystkie wystąpienia Oldvalue są zastępowane przez Newvalue, podobnie oldchar są zastępowane przez Newchar.
- Wykonuje wyszukiwanie z uwzględnieniem wielkości liter, aby znaleźć OldValue lub Oldchar. Jeśli Newvalue ma wartość null, wszystkie wystąpienia Oldvalue są usuwane.
Bibliografia:
- https://msdn.microsoft.com/en-us/library/czx8s9ts(v=vs.110).aspx
- https://msdn.microsoft.com/en-us/library/fk49wtc1(v=vs.110).aspx