В строке заменить все вхождения одного символа на другой - 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();
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д