Замена слов с большой буквы на символы - C#
Формулировка задачи:
Здравствуйте. Нужно в строке типа "Read the sentence in their own Names changed to *" заменит все заглавные слова на символы "*", чтобы получилось "**** the sentence in their own ***** changed to * ". В голову пришла идея выловить все слова которые начинаються с заглавной буквы и удалить их, потом добавить *, но что-то не получаеться реализовать.
Решение задачи: «Замена слов с большой буквы на символы»
textual
Листинг программы
using System;
namespace for_test
{
class Program
{
static void Main(string[] args)
{
string str = "Read the sentence in their own Names changed to *";
//Переводим строку в массив
string[] splt = str.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
int j = 0;
int countChar = 0;
string result = String.Empty;
//Цикл элементов массива
for (int i = 0; i < splt.Length; i++)
{
int count = 0;
//Цикл символов элемента массива
foreach (char Char in splt[i])
{
++count;
//Если первый символ элемента массива Верхнего регистра
if (Char.IsUpper(Char) && count == 1)
{
//Кол-во букв в элементе массива
countChar = splt[i].Length;
j++;
break;
}
else break;
}
//Если текущий элемент массива начинается с буквы в верхнем регистре
if (j != 0)
{
//Пробел
if(i != 0)
result += " ";
for (int g = 0; g < countChar; g++)
{
//рисуем звёздочки,сколько сиволом в элементе
result += "*";
}
}
else result += " " + splt[i];//Иначе текущий элементе начивается не с символа верхнего регистра, конкатенуем значение элемента массива в строку результат
j = 0;
}
Console.WriteLine(result);
Console.ReadKey();
}
}
}