Как я могу сделать первый символ строки в нижнем регистре?Первый символ строчной строчной буквы - C#
Например: ConfigService
И мне нужно, чтобы это было так: configService
Как я могу сделать первый символ строки в нижнем регистре?Первый символ строчной строчной буквы - C#
Например: ConfigService
И мне нужно, чтобы это было так: configService
Один из способов:
string newString = oldString;
if (!String.IsNullOrEmpty(newString))
newString = Char.ToLower(newString[0]) + newString.Substring(1);
Для чего это стоит, метод расширения:
public static string ToLowerFirstChar(this string input)
{
string newString = input;
if (!String.IsNullOrEmpty(newString) && Char.IsUpper(newString[0]))
newString = Char.ToLower(newString[0]) + newString.Substring(1);
return newString;
}
Использование:
string newString = "ConfigService".ToLowerFirstChar(); // configService
Хорошо ли это работает с DBCS? –
@ThorstenDittmar .NET имеет строки Unicode. И символ представляет символ UTF-16 –
@ Сергий Березовский Исправить. Тот же вопрос относится и к суррогатным парам, хотя это не будет правильно обрабатываться (и просто не обрабатывается правильно вообще, в большинстве кодов, которые я видел). – hvd
Вы можете попробовать это:
lower = source.Substring(0, 1).ToLower() + source.Substring(1);
string test = "ConfigService";
string result = test.Substring(0, 1).ToLower() + test.Substring(1);
Кроме того, использование метода 'Подстрока' только для получения первого символа кажется чуть-чуть поверх :) – Tarec
Я бы просто сделать это:
Char.ToLowerInvariant(yourstring[0]) + yourstring.Substring(1)
Простой и получает работу.
EDIT:
Похоже this thread была та же идея. :)
string FirstLower(string s)
{
if(string.IsNullOrEmpty(s))
return s;
return s[0].ToString().ToLower() + s.Substring(1);
}
Используйте эту функцию:
public string GetStringWithFirstCharLowerCase(string value)
{
if (value == null) throw new ArgumentNullException("value")
if (String.IsNullOrWhiteSpace(value)) return value;
char firstChar = Char.ToLowerInvariant(value[0]);
if (value.Length == 1) return firstChar;
return firstChar + value.Substring(1);
}
Обратите внимание, что в дальнейшем перегрузка будет необходимо, если требуется поддержка других языков.
Это может помочь вам, изменяет первый символ ниже, если она является верхней, а также проверяет нулевые или пустые и только пробельные строки:
string str = "ConfigService";
string strResult = !string.IsNullOrWhiteSpace(str) && char.IsUpper(str, 0) ? str.Replace(str[0],char.ToLower(str[0])) : str;
public static string Upper_To_Lower(string text)
{
if (Char.IsUpper(text[0]) == true) { text = text.Replace(text[0], char.ToLower(text[0])); return text; }
return text;
}
public static string Lower_To_Upper(string text)
{
if (Char.IsLower(text[0]) == true) { text = text.Replace(text[0], char.ToUpper(text[0])); return text; }
return text;
}
Надеется, что это поможет! здесь я сделал два метода, принимающих в качестве параметра любую строку, и вернул строку с первой буквой в верхнем или нижнем регистре в соответствии с методом, который вы будете использовать
Вы проверили это? http://stackoverflow.com/questions/3565015/bestpractice-transform-first-character-of-a-string-into-lower-case – Niklas
http://stackoverflow.com/questions/4135317/make-first-letter- of-a-string-upper-case Вместо 'ToUpper' изменить его на' ToLower'. – Random
Примечание: все, что связано с «первым символом», будет очень опасным, если говорить о чем-либо вне простого юникода. Сочетание диакритики, сопряженных пар и справа налево все это вызовет проблемы –