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

  • Автор темы Автор темы SkyRuss
  • Дата начала Дата начала

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
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
str.ToLower();
это переведет в нижний регистр а потом тот код что нашел
 
  • Спасибо
Реакции: abcman
Код:
Развернуть Свернуть Копировать
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 или я что-то не увидел?
 
Вот мне как раз надо поменять букву на заглавную в имени, например daniella.
Увидел в первой строке переменную text и поменял на свою переменню name. Что-то код не сработал.
Код предназначен не для превращения текста daniella в Daniella или я что-то не увидел?

Возможно вы не сняли галочку "Не возвращать значение" и не указали переменную

Image 1.jpg
 
  • Спасибо
Реакции: avtostopshik и smartwisard
Первый раз, первый раз у меня получился код!
Как мне и надо, вот это приводит всё к нижнему регистру:
Код:
Развернуть Свернуть Копировать
var str = project.Variables["Text"].Value.ToLower();
if (str.Length > 0)
{
    return char.ToLower(str[0]) + str.Substring(1);
}
return str.ToLower();
 
Первый раз, первый раз у меня получился код!
Как мне и надо, вот это приводит всё к нижнему регистру:
Код:
Развернуть Свернуть Копировать
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();
 
  • Спасибо
Реакции: alexsandroid
  • Всем привет! Подскажите, пожалуйста, как в кубике C# написать код который переводит содержимое ВСЕХ тегов (между угловыми скобками < ... >) в нижний регистр?

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

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

Как такое сделать? Хелп, плиз!
 
Последнее редактирование модератором:
Подскажите, пожалуйста, как в кубике C# написать код который переводит содержимое ВСЕХ тегов (между угловыми скобками < ... >) в нижний регистр?
А для чего регистр менять? Можно ведь использовать игнорирование регистра при обработке данных.
 
А для чего регистр менять? Можно ведь использовать игнорирование регистра при обработке данных.
мне проще один раз поменять , чем 100500 раз ставить флаг игнорирования регистра
 
мне проще один раз поменять , чем 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
Код сработал на 100%. Благодарствую!! :bf:
 
вопрос такой
нужно определить какой регистру буквы стоит
с четом того что впереди могут стоять цифры или спец символы

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


123erda
!erda
123ERDA

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

определить нижний регистр или верхний первой буквы стоит в слове или же через капс
 
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

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