[C#] Как перевести текст в нижний регистр и потом первую букву к верхнему регистру?

SkyRuss

Client
Регистрация
13.09.2015
Сообщения
27
Благодарностей
14
Баллы
3
Здравствуйте, подскажете как перевести текст в нижний регистр и потом первую букву первого слова привести к верхнему регистру в C#.

До
Код:
ТеСт ТЕКст
тЕст тексТ
теСт ТЕкСт
ТесТ теКст
После
Код:
Тест текст
Тест текст
Тест текст
Тест текст
Нашел на форуме код C#
Код:
var str = project.Variables["Text"].Value;
if (str.Length > 1) return char.ToUpper(str[0]) + str.Substring(1);
return str.ToUpper();
но он не не переводит к нижнему регистру, а только меняет первую букву на заглавную.
 
Последнее редактирование:
  • Спасибо
Реакции: abcman

ssXXXss

Client
Регистрация
23.12.2014
Сообщения
7 379
Благодарностей
2 041
Баллы
113
C#:
var str = project.Variables["Text"].Value.ToLower();
if (str.Length > 1)
{
    return char.ToUpper(str[0]) + str.Substring(1);
}
return str.ToUpper();
 
  • Спасибо
Реакции: abcman и SkyRuss

dio-dev

Client
Регистрация
05.11.2018
Сообщения
149
Благодарностей
54
Баллы
28
str.ToLower();
это переведет в нижний регистр а потом тот код что нашел
 
  • Спасибо
Реакции: abcman

SergSh

Client
Регистрация
10.05.2017
Сообщения
541
Благодарностей
395
Баллы
63

SkyRuss

Client
Регистрация
13.09.2015
Сообщения
27
Благодарностей
14
Баллы
3
Всем большое спасибо, отдельная благодарность ssXXXss.
С наступающим!
 

smartwisard

Client
Регистрация
17.01.2017
Сообщения
824
Благодарностей
83
Баллы
28
Код:
var str = project.Variables["Text"].Value;
if (str.Length > 1) return char.ToUpper(str[0]) + str.Substring(1);
return str.ToUpper();
но он не не переводит к нижнему регистру, а только меняет первую букву на заглавную.
Вот мне как раз надо поменять букву на заглавную в имени, например daniella.
Увидел в первой строке переменную text и поменял на свою переменню name. Что-то код не сработал.
Код предназначен не для превращения текста daniella в Daniella или я что-то не увидел?
 

SkyRuss

Client
Регистрация
13.09.2015
Сообщения
27
Благодарностей
14
Баллы
3
Вот мне как раз надо поменять букву на заглавную в имени, например daniella.
Увидел в первой строке переменную text и поменял на свою переменню name. Что-то код не сработал.
Код предназначен не для превращения текста daniella в Daniella или я что-то не увидел?
Возможно вы не сняли галочку "Не возвращать значение" и не указали переменную

Image 1.jpg
 
  • Спасибо
Реакции: avtostopshik и smartwisard

smartwisard

Client
Регистрация
17.01.2017
Сообщения
824
Благодарностей
83
Баллы
28
Первый раз, первый раз у меня получился код!
Как мне и надо, вот это приводит всё к нижнему регистру:
Код:
var str = project.Variables["Text"].Value.ToLower();
if (str.Length > 0)
{
    return char.ToLower(str[0]) + str.Substring(1);
}
return str.ToLower();
 

samsonnn

Client
Регистрация
02.06.2015
Сообщения
1 761
Благодарностей
1 432
Баллы
113
Первый раз, первый раз у меня получился код!
Как мне и надо, вот это приводит всё к нижнему регистру:
Код:
var str = project.Variables["Text"].Value.ToLower();
if (str.Length > 0)
{
    return char.ToLower(str[0]) + str.Substring(1);
}
return str.ToLower();

Правильно будет так:

C#:
string str = project.Variables["Text"].Value.ToLower();
return str;

можно еще и так:

C#:
string str = project.Variables["Text"].Value;
return str.ToLower();
 

avtostopshik

Client
Регистрация
09.09.2016
Сообщения
787
Благодарностей
136
Баллы
43

donkasstro

Client
Регистрация
12.02.2020
Сообщения
52
Благодарностей
8
Баллы
8
  • Всем привет! Подскажите, пожалуйста, как в кубике C# написать код который переводит содержимое ВСЕХ тегов (между угловыми скобками < ... >) в нижний регистр?

    Например, в Notepad++ работает такая регулярка::
Находим: <([^<>]+)>
Заменяем: \L<$1>

А в кубике C# не работает:
regexTest2 = System.Text.RegularExpressions.Regex.Replace(regexTest1, @"<([^<>]+)>", "\L<$1>");

Как такое сделать? Хелп, плиз!
 
Последнее редактирование модератором:

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
Подскажите, пожалуйста, как в кубике C# написать код который переводит содержимое ВСЕХ тегов (между угловыми скобками < ... >) в нижний регистр?
А для чего регистр менять? Можно ведь использовать игнорирование регистра при обработке данных.
 

donkasstro

Client
Регистрация
12.02.2020
Сообщения
52
Благодарностей
8
Баллы
8
А для чего регистр менять? Можно ведь использовать игнорирование регистра при обработке данных.
мне проще один раз поменять , чем 100500 раз ставить флаг игнорирования регистра
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
20 270
Благодарностей
9 054
Баллы
113
мне проще один раз поменять , чем 100500 раз ставить флаг игнорирования регистра
Модификаторы регистра в регулярках в ЗП не работают, к сожалению.
Вот такой код можно использовть:
C#:
string source = project.Variables["source"].Value;
string pattern = @"<([^<>]+)>";

Regex regex = new Regex(pattern, RegexOptions.IgnoreCase);
MatchCollection matches = regex.Matches(source);

foreach(Match m in matches)
{
    if(m.Value.Length > 0)
        source = source.Replace(m.Value, m.Value.ToLower());
}

return source;
 
  • Спасибо
Реакции: donkasstro

donkasstro

Client
Регистрация
12.02.2020
Сообщения
52
Благодарностей
8
Баллы
8
Код сработал на 100%. Благодарствую!! :bf:
 

Ostap1992

Client
Регистрация
26.02.2020
Сообщения
44
Благодарностей
5
Баллы
8
вопрос такой
нужно определить какой регистру буквы стоит
с четом того что впереди могут стоять цифры или спец символы

то есть варианты могут быть разные


123erda
!erda
123ERDA

нас интересует только ( erda )

определить нижний регистр или верхний первой буквы стоит в слове или же через капс
 

Midnight

Client
Регистрация
28.02.2016
Сообщения
315
Благодарностей
180
Баллы
43
C#:
        string input = "!erda"; // Ваша строка для проверки

        // Ищем индекс первой буквы в строке
        int index = 0;
        foreach (char c in input)
        {
            if (char.IsLetter(c))
            {
                index = input.IndexOf(c);
                break;
            }
        }

        // Проверяем регистр первой буквы
        if (char.IsLower(input[index]))
        {
            return "Первая буква в нижнем регистре";
        }
        else
        {
            return "Первая буква в верхнем регистре";
        }
все эти вопросы можно чату гпт задавать
 
  • Спасибо
Реакции: Sergodjan

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