Преобразование текстовой строки

vikas2006

Client
Регистрация
10.05.2019
Сообщения
62
Благодарностей
1
Баллы
8
Добрый день друзья.
Есть задача не простая, связанная с текстом но думаю для новичков актуальная.
Есть текстовая строка string ss="Кувалда7612" или ss="fedor" ну и так далее то с большой заглавной то с маленькой, как русскими так и английскими.
Задача через C# менять автоматические если была заглавная на маленькую, а маленькую на заглавную.
Что код мог как анг так русский менять. Исключение если первый символ цифра тогда ничего не делить.
Если кто может выложить кусок кода сюда будем благодарны.
Заранее спасибки.
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
19 470
Благодарностей
8 691
Баллы
113
Задача через C# менять автоматические если была заглавная на маленькую, а маленькую на заглавную.
Если для новичков, то лучше уж кубиками.
На кубиках весь набор инструментов для этой задачи - есть.
 

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43
Код:
string text = "килограмм";
if (Regex.IsMatch(text,@"^\w"))
                text = text.ToArray().First().ToString().ToUpper()+text.Substring(1,text.Length-1);

return text;//Килограмм
 

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43
Даже вот так:
Код:
Func<string, string> ToUp = text =>
             {
                 if (Regex.IsMatch(text, @"^\w"))
                     text = text.ToArray().First().ToString().ToUpper() + text.Substring(1, text.Length - 1);
                 return text;
             };
пользоваться так:
return ToUp("килограмм");//=Килограмм
//return ToUp("1000 грамм");//=1000 грамм
 

vikas2006

Client
Регистрация
10.05.2019
Сообщения
62
Благодарностей
1
Баллы
8

Задача не так решается. С маленькой на большую она решает,а с большой на мелкую нет, остается все равно большая.
А надо взаимозамену одну на противоположную. Если Первая "Ы" то на выходе "ы" Если первая "z" то на выходе "Z" и если можно без функции я еще плохо понимаю принцип С# Заранее спасибо, особеннно evgen2208.
http://joxi.ru/E2p0ga0t7Vnbb2
http://joxi.ru/VrwLlkLt7vlagm
 
Последнее редактирование:

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43
Не дочитал до конца )

Код:
Func<string, string> ToUp = text =>
             {
                 if (Regex.IsMatch(text, @"^[a-zа-яё]"))
                     text = text.ToArray().First().ToString().ToUpper() + text.Substring(1, text.Length - 1);
                 else if (Regex.IsMatch(text, @"^[A-ZА-ЯЁ]"))
                     text = text.ToArray().First().ToString().ToLower() + text.Substring(1, text.Length - 1);
                 return text;
             };


            return ToUp("КИЛОГРАММ")+"|"+ToUp("1000 грамм")+"|"+ToUp("килограмм");
кИЛОГРАММ|1000 грамм|Килограмм

Без функции - просто то что внутри {скобок}
 

vikas2006

Client
Регистрация
10.05.2019
Сообщения
62
Благодарностей
1
Баллы
8
Спасибо этот вариант работает.)))
 

evgen2208

Client
Регистрация
12.10.2016
Сообщения
130
Благодарностей
162
Баллы
43

vikas2006

Client
Регистрация
10.05.2019
Сообщения
62
Благодарностей
1
Баллы
8

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)