В строке заменить все вхождения одного символа на другой - C#
Формулировка задачи:
Ребят вот такая простенькая задачка:
Написать метод, входными параметрами которого являются строка, два символа. Метод должен заменить в строке все вхождения первого символа на символ «*» если рядом с этим символом не стоит второй символ. При решении не использовать готовы строковые функции.
Я то прогу написал, но возможно ли сам метод упростить еще, согласно условию, и вообще есть ли иной оптимальный вариант решения?
class Program { static void Main(string[] args) { string str = "vesna leto zima osenh"; char a = 'e'; char b = 't'; Console.WriteLine(funktsiya(str, a, b)); Console.ReadKey(); } public static string funktsiya(string str, char a, char b) { char[] simvoly = str.ToCharArray(); for (int i = 0; i < simvoly.Length; i++) { if(simvoly[i] == a && simvoly[i + 1] != b) { simvoly[i] = '*'; } } string str1 = new string(simvoly); str = str1; return str; } }
Решение задачи: «В строке заменить все вхождения одного символа на другой»
textual
Листинг программы
using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace ConsoleApplication1 { class Program { static void Main(string[] args) { char[] str = "et vesna leto zima osenh ye".ToCharArray(); char first = 'e'; char second = 't'; char what = '*'; for (int i = 0; i < str.Length; i++) { char left = i > 0 ? str[i - 1] : '\0'; char curr = str[i]; char right = i == str.Length - 1 ? '\0' : str[i + 1]; if (curr == first && left != second && right != second) str[i] = what; } string newstr = new string(str); Console.WriteLine(newstr); Console.ReadKey(); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д