Как сделать первую букву заглавной c
Перейти к содержимому

Как сделать первую букву заглавной c

  • автор:

Сделать первую букву строки заглавной

Всем привет!
Как в предложении все слова подогнать под один формат?
Т.е. если я ввожу «ИВАНОВ ИВАН ИВАНОВИЧ» или «ИВАнов ИваН ивановИЧ» и т.п выводилось потом в любом случае «Иванов Иван Иванович».
Так я первую букву первого слова делаю заглавную, но второе и третье остается маленьким.

1 2 3 4
public static string FirstUpper(string str) { return str.Substring(0, 1).ToUpper() + (str.Length > 1 ? str.Substring(1) : ""); }

Думаю как вариант надо искать в строке каждый пробел и делать ToUpper и ToLower в куске строки до него, но код весьма громоздкий получится. Может есть какая то встроенная функция или алгоритм оптимальнее?
Благодарю.

Лучшие ответы ( 1 )
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
Ответы с готовыми решениями:

Сделать первую букву заглавной
Возникла такая проблема. у меня есть список List<string> содержащий какие-то слова, и мне нужно.

Сделать первую букву слова заглавной
у меня есть адрес примерно такого вида "222567, ололошная обл., ололошный р-н, г.ололо.

Обработка слов: поставить точку и сделать букву заглавной
Доброго времени суток! Столкнулся с такой проблемой. Не могу прописать программу. Смысл понял, а.

Из текстового файла прочитать предложение, первую букву каждого слова сделать большой
Из текстового файла прочитать предложение, первую букву каждого слова сделать большой. Полученое.

543 / 544 / 181
Регистрация: 16.03.2012
Сообщений: 1,160
Записей в блоге: 2

Лучший ответ

Сообщение было отмечено Памирыч как решение

Решение

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
public static string FirstUpper(string str) { string[] s = str.Split(' '); for (int i = 0; i  s.Length; i++) { if (s[i].Length > 1) s[i] = s[i].Substring(0, 1).ToUpper() + s[i].Substring(1, s[i].Length - 1).ToLower(); else s[i] = s[i].ToUpper(); } return string.Join(" ", s); } static void Main(string[] args) { Console.WriteLine(FirstUpper("sE lgf;fOPPEKFP SERT")); }

Запуск — Ctrl+F5

Эксперт .NET

17413 / 12809 / 3355
Регистрация: 17.09.2011
Сообщений: 21,087

1 2 3 4 5 6 7 8 9 10
unsafe void NormalizeString(string str) { fixed (char* pBase = str) { char prev = '\0'; for (char* ptr = pBase; ptr  pBase + str.Length; prev = *ptr++) if (char.IsLetter(*ptr)) *ptr = char.IsLetter(prev) ? char.ToLower(*ptr) : char.ToUpper(*ptr); } }

Под понятие «слово» уже подгоните сами. В коде выше слова разделяются любой не-буквой.
543 / 544 / 181
Регистрация: 16.03.2012
Сообщений: 1,160
Записей в блоге: 2
Либо еще так (в цикле):

s[i]=s[i].ToLower(); s[i] = s[i].Substring(0, 1).ToUpper() + s[i].Substring(1, s[i].Length - 1);

Регистрация: 29.10.2012
Сообщений: 68
Я написал так:

1 2 3 4 5 6 7 8 9 10 11 12
public String FirstUpper(String str) /*Один символ после пробела Заглавный*/ { str = str.ToLower(); string[] s = str.Split(' '); for (int i = 0; i  s.Length; i++) { if (s[i].Length > 1) s[i] = s[i].Substring(0, 1).ToUpper() + s[i].Substring(1, s[i].Length - 1); else s[i] = s[i].ToUpper(); } return string.Join(" ", s); }

Регистрация: 27.07.2010
Сообщений: 496
Всем привет. Меня интересует самый первый вариант, если я правильно понял, то этот код

1 2 3 4
public static string FirstUpper(string str) { return str.Substring(0, 1).ToUpper() + (str.Length > 1 ? str.Substring(1) : ""); }

делает все буквы маленькими а первую в строке заглавную.
У меня есть вот такая штука как мне это все дело прикрутить к этому, что бы все буквы были меленькими а первая маленькая в строке?

187 / 100 / 19
Регистрация: 15.09.2011
Сообщений: 801

Вот вариант с регулярками

Кликните здесь для просмотра всего текста

1 2 3 4 5 6 7 8 9 10 11
public string Capitalize(string input) { var result = new StringBuilder(input.ToLower()); foreach (Match m in Regex.Matches(input, @"\b(?!\s)[а-я,a-z]", RegexOptions.IgnoreCase)) { result = result.Replace(m.Value.ToLower(), m.Value.ToUpper(), m.Index, 1); } return result.ToString(); }

PS. Жаль, что не выбрали лучшим вариант kolorotur: по моему, он самый быстрый

Как сделать первую букву заглавной c

Подскажите, пожалуйста, как сделать первую букву заглавной.
Например: пять тысяч сто пять, нужно чтобы первая буква стала заглавной.
Заранее благодарен.

Предлагаю перевести её в верхний регистр..
Отрежь первую букву из стоки.
Сделай ей ВРЕГ. Добавь эту букву к ТвоейСтроке
ИсходнаяСтр = «пять тысяч сто пять»;
НужнаяСтр = (Лев(Стр,1) + Сред(Стр,2));
+(3)
НужнаяСтр = ВРег(Лев(Стр,1)) + Сред(Стр,2));
(+3)
НужнаяСтр = Врег(Лев(Стр,1)) + нрег(Сред(Стр,2));
Да, забыл Врег написать ))
2(2)(3)(4)(5) А пробелы в начале строки пропустить?
(7) Совершенству нет предела )
(7)Пять балов!
Меня уже ничто не шокирует.
Всем большое спасибо.

(7)
У строки
ИсходнаяСтр = «пять тысяч сто пять»; — нету ведущих пробелов

а так (8) прав, нет пределу совершенства .

+(12) делаем следующий логический шаг:
ИсходнаяСтр = «Пять тысяч сто пять»;

Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn

Как сделать первую букву заглавной c

Мы хотим сделать этот проект с открытым исходным кодом доступным для людей во всем мире. Пожалуйста, помогите нам перевести это руководство на другие языки.

Светлая тема Тёмная тема
Поделиться

Сделать первый символ заглавным

важность: 5

Напишите функцию ucFirst(str) , возвращающую строку str с заглавным первым символом. Например:

ucFirst("вася") == "Вася";

Мы не можем просто заменить первый символ, так как строки в JavaScript неизменяемы.

Но можно пересоздать строку на основе существующей, с заглавным первым символом:

let newStr = str[0].toUpperCase() + str.slice(1);

Однако есть небольшая проблемка. Если строка пуста, str[0] вернёт undefined , а у undefined нет метода toUpperCase() , поэтому мы получим ошибку.

  1. Использовать str.charAt(0) , поскольку этот метод всегда возвращает строку (для пустой строки — пустую).
  2. Добавить проверку на пустую строку.

Вот второй вариант:

function ucFirst(str) < if (!str) return str; return str[0].toUpperCase() + str.slice(1); >alert( ucFirst("вася") ); // Вася

c# сделать первую букву заглавной

Добавьте код который уже есть. Сделать не сложно но нужно понимать как у вас хранится XML, как вы из него извлекаете элементы и на основе каких (надеюсь стандартных) классов вы с ним работаете. Без этого ответить на ваш вопрос можно только так, как я уже ответил.

1 мар 2016 в 21:42

2 ответа 2

Сортировка: Сброс на вариант по умолчанию

Для XDocument и приведенного примера можно например так:

XDocument doc = XDocument.Load(@"SomeFile.xml"); IEnumerable elements = from el in doc.Descendants("ttt") select el; foreach (XElement el in elements) < StringBuilder elementText = new StringBuilder(el.Element("t2").Value); if (Char.IsLower(elementText[0])) < elementText[0] = Char.ToUpper(elementText[0]); >el.Element("t2").Value = elementText.ToString(); elementText.Clear(); > doc.Save(@"SomeFile.xml"); 

Больше подробностей и возможностей описано в MSDN, на русском языке и даже почти без ошибок машинного перевода.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *