2010-12-08 2 views
0

Моя строка:Как загладить только первую букву строки, а нижнее - остальное?

1 СОСТОЯНИЕ ГОА ЧЕРЕЗ ГЛАВНЫЙ

Я хочу, чтобы выходной быть как

1 штата гоа через главный

Как могу ли я сохранить капитал первого письма и преобразовать другие в маленькие? Я использовал .ToLower(), но он преобразует все буквы в маленькие.

ответ

1

2Try это:

petitioner = respetMyReader["pet_name"].ToString(); 
petitioner = petitioner.Substring(2,1).ToUpper() + petitioner.Substring(1).ToLower(); 
4
string s = "1 STATE OF GOA THROUGH CHIEF"; 
bool sawLetter = false; 
StringBuilder sb = new StringBuilder(s.Length); 
foreach (char c in s) { 
    if (!sawLetter && Char.IsLetter(c)) { 
     sb.Append(Char.ToUpperInvariant(c)); 
     sawLetter = true; 
    } 
    else { 
     sb.Append(Char.ToLowerInvariant(c)); 
    } 
} 
Console.WriteLine(sb.ToString()); 

Вы можете получить супер фантазии и писать это как агрегированный запрос в LINQ, но это было бы случаем фантазии синдрома кодирования. Просто сделайте это как метод расширения и двигайтесь дальше.

Обратите внимание, что это, по крайней мере, на порядок лучше, чем с помощью Substring, чтобы разделить строку на две части.

+0

Это хорошее решение, и кстати @Jason я предполагаю, вы имели в виду `StringBuilder С.Б. = новый StringBuilder (s.length)`? – 2010-12-08 07:11:16

0

Попробуйте поставить этот раз перед установкой значения HiddenValue4 в Fil_No ...

String FinalString = fil_no.substring(1, 3) + LCase(fil_no.substring(4, (fil_no.Length - 4))); 

Это должно держать первые три символа в любом fil_no есть и делают все остальное в нижнем регистре.

Смежные вопросы