有人可以告訴我如何做到這一點。我知道有些函數會轉換爲小寫字母,但我只想爲第一個字符做這個。如何將C#字符串的第一個字符轉換爲小寫?
回答
必須有這樣做的多種方式,您可以在第一個字符使用char.ToLower
,然後得到的子指數從1開始,您可以嘗試:
string str = "Aaaaaa";
str = char.ToLower(str[0]) + str.Substring(1);
是,如果你檢查字符串更好長度,以避免異常。
if(str.Length > 0)
{
str = char.ToLower(str[0]) + str.Substring(1);
}
+1。 – Christos
string s = "HELLO";
s = (s.Length > 0) ? s.Substring(0, 1).ToLower() + s.Substring(1) : "";
你需要確保你的字符串是不是空的,以避免錯誤
你可以試試這個:
// the string you have
string input = "Asdasds";
// the string you want.
string result = input[0].ToLower()+input.Substring(1);
input[0]
回報您的字符串的第一個字符。在此char上調用ToLower()
,您將獲得此角色的較低版本。
這是一個笑話(但仍然有效),與OP所付出的努力相對應。
您可以使用具有string.Transform(To.LowerCase)
擴展方法大Hummanizer庫:
public abstract class StringProcessor
{
abstract public string Process(string input);
}
public class ChainedStringProcessor : StringProcessor
{
private readonly IEnumerable<Func<string, string>> filters;
public ChainedStringProcessor(params Func<string, string>[] filters)
{
this.filters = filters;
}
public override string Process(string input)
{
if (this.filters == null)
throw new InvalidOperationException();
if (input == null)
throw new ArgumentNullException("input");
string result = input;
foreach (var filter in filters)
{
result = filter(result);
}
return result;
}
}
,然後你可以使用:
ChainedStringProcessor processor = new ChainedStringProcessor(
str => str.Transform(To.LowerCase)
);
string ret = processor.Process("Hello");
我很高興你把第一行寫進去。+1讓我發笑。 – Jodrell
您可以使用下面的方法的第一個字符轉換成字符串(包括所有必要的檢查):
public static string FirstCharToLower(string str)
{
if (str == null || str.Length == 0)
return str;
if (str.Length == 1)
return str.ToLower();
return Char.ToLower(str[0]).ToString() + str.Substring(1);
}
在某些情況下,當傳遞的字符串爲空時,您可能想要引發異常。如果是這樣的情況下修改方法:
public static string FirstCharToLower(string str)
{
if (str == null)
throw new ArgumentNullException("str");
if (str.Length == 0)
return str;
else if (str.Length == 1)
return str.ToLower();
return Char.ToLower(str[0]).ToString() + str.Substring(1);
}
請注意,投擲和捕獲異常會損害性能,因此如果在循環使用的,我建議你使用的第一個實施和檢查空。
如果參數爲空而不是返回,則拋出異常會更合適 –
@Selman22,取決於您想要使用該方法的上下文。我已經編輯了答案以包含您的提案。 –
@ Selman22,爲什麼會更合適? – Jodrell
還有另一種變化方式。請注意,如果參數是null
或string.Empty
,這與其他許多答案不同。
public static string FirstCharToLower(string value)
{
if (value == null)
{
// Take your pick.
return null;
// or,
throw new ArgumentNullException("value");
}
return new string(
value.Take(1).Select(char.ToLower)
.Concat(value.Skip(1)).ToArray());
}
另外,有些矯枉過正
public IEnumerable<T> TransformWhere(
this IEnumerable<T> source,
Func<int, T, bool> predicate,
Func<T, T> transform)
{
var i = -1;
foreach(var t in source)
{
if (predicate(++i, t))
{
yield return transform(t);
continue;
}
yield return t;
}
}
,所以你可以做,
var result = new string("SomeString".TransformWhere(
(i, c) => i == 0,
char.ToLower)
.ToArray());
- 1. BestPractice - 將字符串的第一個字符轉換爲小寫
- 2. Android:將字符串的第一個字母轉換爲小寫
- 3. Ansi C - 將字符串轉換爲小寫字符串
- 4. 轉換字符串的第一個字符內爲大寫
- 5. 如何將字符串(字符*)轉換爲大寫或小寫用C
- 6. 將字符串轉換爲小寫
- 7. 字符串小寫字母的第一個字符 - C#
- 8. 如何字符串的一部分轉換成C#爲小寫
- 9. 將字符串轉換爲小寫字母c後的字符串
- 10. 如何在DWT,Tridion中將大寫字符串轉換爲小寫字符串
- 11. C++ - 將字符串轉換爲字符
- 12. 如何將Objective-C字符串轉換爲C字符串?
- 13. 如何將一個字符串轉換爲C#中的字節?
- 14. 如何將每列的第一個字符轉換爲大寫?
- 15. 如何將字符串的小寫字符轉換爲C++中的大寫字符?
- 16. 如何將一個字符串轉換爲一個字符數組中的字符大小的字符數組?
- 17. 將字符串的替代字符轉換爲大寫。字符串的第一個字母必須是Capital
- 18. Java如何將小寫字符串值轉換爲字符串數組中的大寫字符串
- 19. 如何將轉義字符串轉換爲C中的一個字符
- 20. 將IDictionary <字符串,字符串>鍵轉換爲小寫(C#)
- 21. 如何將字符串的字符串轉換爲字符?
- 22. 如何將c字符串轉換爲d字符串?
- 23. 如何將C++字符串轉換爲.NET字符串^?
- 24. 如何使用C#將字符串轉換爲PascalCase字符串?
- 25. 將一個字符串轉換爲另一個字符串
- 26. 如何將具有特殊字符的字符串轉換爲轉義字符串的另一個字符串
- 27. 如何將字符串子字符串轉換爲Java中的第二個點(。)?
- 28. 如何將字符串轉換爲C++中的字符數組?
- 29. 如何將字符串轉換爲C中的字符
- 30. c#將字符串轉換爲單個
哪些特定的位,你掙扎? – Jodrell
@Jodrell - 我看到你在那裏做了什麼。 –