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

seroja

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

Можно конечно на коленке
1. берем строку
2. заменяем пробел на какой-то сивмол
3. ToUpper
4. замена "какой-то сивмол" на пробел
Но предложений слишком много, шаблон сильно разрастется.
 

seroja

Client
Регистрация
08.10.2009
Сообщения
250
Благодарностей
23
Баллы
18
  • Спасибо
Реакции: Vik89, Lankorn и Rdenwer

traffoLocker

Client
Регистрация
14.05.2011
Сообщения
75
Благодарностей
10
Баллы
8
  • Спасибо
Реакции: seroja

seroja

Client
Регистрация
08.10.2009
Сообщения
250
Благодарностей
23
Баллы
18
Во спасибо, у меня было в мыслях "блин вроде бы было в 3ке такое, а может путаю" оказывается точно было)))
 

Vik89

Client
Регистрация
05.11.2014
Сообщения
71
Благодарностей
14
Баллы
8
может кому пригодится, JSом
function ucfirst(str)
{
var first = str.charAt(0).toUpperCase();
return first + str.substr(1);
}
ucfirst('hello world');
А можно подробнее, вот у меня строка которую надо сделать с заглавной буквы находится в переменной Var1.
Как сделать чтобы этот код обработал именно эту переменную?
 

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
А можно подробнее, вот у меня строка которую надо сделать с заглавной буквы находится в переменной Var1.
Как сделать чтобы этот код обработал именно эту переменную?
Можете так прописать:
{-String.ToUpper-|-{-Variable.Var1-}-|-0-}
 
  • Спасибо
Реакции: Vik89

Vik89

Client
Регистрация
05.11.2014
Сообщения
71
Благодарностей
14
Баллы
8
Последнее редактирование модератором:

ZennoScript

Moderator
Регистрация
04.03.2011
Сообщения
4 450
Благодарностей
1 880
Баллы
113
Иногда такие вот моменты проще сделать макросом из тройки.

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

string text = project.Variables["input"].Value;
return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(text);
 
  • Спасибо
Реакции: Rain и Vik89

Generator5

Новичок
Регистрация
23.07.2014
Сообщения
8
Благодарностей
0
Баллы
1
Можете еще через С# код сделать

string text = project.Variables["input"].Value;
return System.Globalization.CultureInfo.CurrentCulture.TextInfo.ToTitleCase(text);
Так все первые буквы у каждого слова получаются заглавными. То есть работает так же, как ToUpper "Начало слов".


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

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Что значит "в каждом предложении большого текста"?
 

Generator5

Новичок
Регистрация
23.07.2014
Сообщения
8
Благодарностей
0
Баллы
1
Что значит "в каждом предложении большого текста"?
Да, собственно, это и значит - первую букву в каждом предложении, а не только первую букву в первом предложении, как это делает String.ToUpper.

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

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

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

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


Мне уже не актуально, как-то уже решил вопрос (если честно, даже не помню как именно, но 100% каким-то костылём хД, скорее всего построчным перебором ), но если подскажете как решить данную задачу оптимальнее - буду признателен, ещё пригодится.
 
Регистрация
23.12.2014
Сообщения
127
Благодарностей
65
Баллы
28
Оставлю на всякий случай.
Код:
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);
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 101
Баллы
113
Каждое предложение и абзацы с Заглавной буквы
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);
 
Регистрация
23.12.2014
Сообщения
127
Благодарностей
65
Баллы
28
Регистрация
23.12.2014
Сообщения
127
Благодарностей
65
Баллы
28
Рандомные слова с заглавной буквы - для чего такое нужно, если не секрет?
ответ не дам, просто предложили написать сниппет, который реализует такой функционал))
 

nik-n

Client
Регистрация
05.11.2016
Сообщения
240
Благодарностей
20
Баллы
18
есть текст "СЛОВО", или "СловО" или "слово"
а надо любой из них вот так "Слово"

штатными инструментами можно как то?
 

doc

Client
Регистрация
30.03.2012
Сообщения
8 607
Благодарностей
4 599
Баллы
113
есть текст "СЛОВО", или "СловО" или "слово"
а надо любой из них вот так "Слово"

штатными инструментами можно как то?
обработка текста---ToLower---Все
обработка текста---ToUpper---Первый символ
 

artyomka27

Client
Регистрация
12.01.2015
Сообщения
33
Благодарностей
2
Баллы
8
Каждое предложение и абзацы с Заглавной буквы
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 на имя переменной менять и всё, или ещё что-то менять?)


p.s. gotovo - имя переменной с текстом
 
  • Спасибо
Реакции: Home_KreKer

artyomka27

Client
Регистрация
12.01.2015
Сообщения
33
Благодарностей
2
Баллы
8
а всё, разобрался. Забыл в переменную результат засунуть)))
 

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