2014-02-13 236 views
-1

如何讓字符串小寫字母的第一個字符?字符串小寫字母的第一個字符 - C#

例如:ConfigService

,我需要它是這樣的:configService

+0

您是否檢查了這一點? http://stackoverflow.com/questions/3565015/bestpractice-transform-first-character-of-a-string-into-lower-case – Niklas

+0

http://stackoverflow.com/questions/4135317/make-first-letter- of-a-string-upper-case改爲'ToUpper'將其改爲'ToLower'。 – Random

+3

注意:任何「第一個字符」相關的事情在討論任何非簡單unicode之外的事情時都會非常危險。結合變音符號,共軛對和從右到左都會導致問題 –

回答

6

這將工作:

string s = "ConfigService"; 
      if (s != string.Empty && char.IsUpper(s[0])) 
      { 
       s= char.ToLower(s[0]) + s.Substring(1); 
      } 
      Console.WriteLine(s); 
+1

不要忘記檢查空字符串。 – nima

+0

只包含一個字符的字符串。 – Crono

+0

@nima我編輯過它 –

7

方式一:

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 
+0

這對DBCS是否正常工作? –

+2

@ThorstenDittmar .NET有Unicode字符串。而char代表UTF-16字符 –

+1

@SergeyBerezovskiy正確。然而,同樣的問題適用於代理對,這將不會被正確處理(並且只是在一般情況下沒有正確處理,在我見過的大多數代碼中)。 – hvd

1

你可以試試這個:

lower = source.Substring(0, 1).ToLower() + source.Substring(1); 
1
string test = "ConfigService"; 
string result = test.Substring(0, 1).ToLower() + test.Substring(1); 
+1

另外,使用'Substring'方法來獲取第一個字符似乎有點超過頂部:) – Tarec

1

我只想做到這一點:

Char.ToLowerInvariant(yourstring[0]) + yourstring.Substring(1) 

簡單,能夠完成任務。

編輯:

看起來this thread有同樣的想法。 :)

1
string FirstLower(string s) 
    { 
     if(string.IsNullOrEmpty(s)) 
      return s; 
     return s[0].ToString().ToLower() + s.Substring(1); 
    } 
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); 
} 

請注意,如果需要對其他語言的支持,進一步超載將是必要的。

1

這可以幫助你,改變第一個字符下,如果它是上,還檢查null或空,只有空白字符串:

string str = "ConfigService"; 
string strResult = !string.IsNullOrWhiteSpace(str) && char.IsUpper(str, 0) ? str.Replace(str[0],char.ToLower(str[0])) : str; 
2
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; 
    } 

希望這將幫助你!在這裏我提出了兩種方法,以任何字符串作爲參數,並根據您將使用的方法將字符串以第一個字母大寫或小寫字符返回

相關問題