Первую букву Заглавной?

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

seroja

Client
Регистрация
08.10.2009
Сообщения
250
Реакции
23
Баллы
18
Привет, как сделать начало предложения, с заглавной буквы?
ToUpper не подходит :( Нужно только первую букву...
может на C# можно?

Можно конечно на коленке
1. берем строку
2. заменяем пробел на какой-то сивмол
3. ToUpper
4. замена "какой-то сивмол" на пробел
Но предложений слишком много, шаблон сильно разрастется.
 
Во спасибо, у меня было в мыслях "блин вроде бы было в 3ке такое, а может путаю" оказывается точно было)))
 
может кому пригодится, JSом
function ucfirst(str)
{
var first = str.charAt(0).toUpperCase();
return first + str.substr(1);
}
ucfirst('hello world');

А можно подробнее, вот у меня строка которую надо сделать с заглавной буквы находится в переменной Var1.
Как сделать чтобы этот код обработал именно эту переменную?
 
А можно подробнее, вот у меня строка которую надо сделать с заглавной буквы находится в переменной Var1.
Как сделать чтобы этот код обработал именно эту переменную?

Можете так прописать:
{-String.ToUpper-|-{-Variable.Var1-}-|-0-}
 
  • Спасибо
Реакции: Vik89
Последнее редактирование модератором:
Иногда такие вот моменты проще сделать макросом из тройки.

Можете еще через С# код сделать

string text = project.Variables["input"].Value;
return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(text);
 
  • Спасибо
Реакции: Rain и Vik89
Можете еще через С# код сделать

string text = project.Variables["input"].Value;
return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(text);

Так все первые буквы у каждого слова получаются заглавными. То есть работает так же, как ToUpper "Начало слов".


А есть ли решение сделать первые буквы заглавными в КАЖДОМ предложении большого текста? Можно, конечно, перебрать все предложения построчно и использовать {-String.ToUpper-|-{-Variable.Var1-}-|-0-}. Но предложений больше 200 - получается долго. Может, кто-то подскажет, как на C# или JS сделать? Весь текст лежит в переменной, а не в списке.
 
Что значит "в каждом предложении большого текста"?
 
Что значит "в каждом предложении большого текста"?
Да, собственно, это и значит - первую букву в каждом предложении, а не только первую букву в первом предложении, как это делает String.ToUpper.

Имеем текст в переменной:
мама мыла раму. раму мыла мама. мама мыла милу. мыла милу мылом.

String.ToUpper (первый символ) сделает так:
Мама мыла раму. раму мыла мама. мама мыла милу. мыла милу мылом.
то есть только первый символ переменной.

Приведенный здесь код System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(text), и, аналогично, стандартный ToUpper "Начало слов" сделают так:
Мама Мыла Раму. Раму Мыла Мама. Мама Мыла Милу. Мыла Милу Мылом.

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


Мне уже не актуально, как-то уже решил вопрос (если честно, даже не помню как именно, но 100% каким-то костылём хД, скорее всего построчным перебором ), но если подскажете как решить данную задачу оптимальнее - буду признателен, ещё пригодится.
 
Оставлю на всякий случай.
Код:
Развернуть Свернуть Копировать
string x = "Value that you send on your link and that is displayed only on";
string[] y = x.Split(' ');
Random r = new Random();
for(int n=0;n<y.Count();n++)
{
    var rand =r.Next(0,2);
    if(rand==1)
    {
        y[n]=System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(y[n]);
    }
}
return string.Join(" ",y);
 
Каждое предложение и абзацы с Заглавной буквы
C#:
Развернуть Свернуть Копировать
string str = project.Variables["text"].Value.Trim();
string[] s = Regex.Split(str, @"(?<=[.!?\n]+\s*)");
for (int i = 0; i < s.Length; i++) {
    if (s[i].Length != 0)
        s[i] = s[i].Substring(0, 1).ToUpper() + s[i].Remove(0, 1);
}
return string.Join("", s);
 
есть текст "СЛОВО", или "СловО" или "слово"
а надо любой из них вот так "Слово"

штатными инструментами можно как то?
 
есть текст "СЛОВО", или "СловО" или "слово"
а надо любой из них вот так "Слово"

штатными инструментами можно как то?
обработка текста---ToLower---Все
обработка текста---ToUpper---Первый символ
 
Каждое предложение и абзацы с Заглавной буквы
C#:
Развернуть Свернуть Копировать
string text = project.Variables["Text"].Value.Trim();
string[] s = Regex.Split(text, @"(?<=[\.!?\n]+\s*)");
for (int i = 0; i < s.Length; i++)
    s[i] = s[i].Substring(0, 1).ToUpper() + s[i].Remove(0, 1);
return string.Join("", s);

Что-то не работает. Там только Text на имя переменной менять и всё, или ещё что-то менять?)

14399003.jpg

p.s. gotovo - имя переменной с текстом
 
  • Спасибо
Реакции: Home_KreKer
а всё, разобрался. Забыл в переменную результат засунуть)))
 

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