[英]Is there a built-in IsLowerCase() in .NET?
.NET中是否有內置的IsLowerCase()
?
public static bool IsLowerCase( this string text ) {
if ( string.IsNullOrEmpty( text ) ) { return true; }
foreach ( char c in text )
if ( char.IsLetter( c ) && !char.IsLower( c ) )
return false;
return true;
}
"someString".IsLowerCase();
您是說Char.IsLower(ch);
?
請記住,本地化使這成為一個不平凡的問題。 只要您不在乎,第一個示例就可以:
string s = ...
s.All(c => char.IsLower(c));
如果您確實在意,請按照以下方式進行操作:
s.ToLower(CultureInfo.CurrentUICulture) == s;
這使您有機會解決文化問題。
編輯:沒有看到您的問題的實際含義。 您可以使用:
char.IsLower(c);
至於在案例之間輕松轉換:
當然是:
MSDN說 :
string upper = "CONVERTED FROM UPPERCASE";
Console.WriteLine(upper.ToLower());
它是string
類的一部分。
還有TextInfo
類:
CultureInfo cultureInfo = Thread.CurrentThread.CurrentCulture;
TextInfo textInfo = cultureInfo.TextInfo;
Console.WriteLine(textInfo.ToTitleCase(title));
Console.WriteLine(textInfo.ToLower(title));
Console.WriteLine(textInfo.ToUpper(title));
這允許更多的變化來更改大寫和其他內容(例如ToTitleCase
)。
正如其他人提到的那樣,您可以使用char.IsLower(ch)輕松為單個char執行此操作
但是要擴展String原語,並不是很困難。 您可以使用Runtime.CompilerServices命名空間相對簡單地擴展BCL:
Imports System.Runtime.CompilerServices
Module CustomExtensions
<Extension()> _
Public Function IsLowerCase(ByVal Input As String) As Boolean
Return Return Input.All(Function(c) Char.IsLower(c))
End Function
End Module
或在C#中,將是:
using System.Runtime.CompilerServices;
static class CustomExtensions
{
public static bool IsLowerCase(this string Input)
{
return Input.All(c => char.IsLower(c));
}
}
現在,您可以使用以下方法找出答案:
Console.WriteLine("ThisIsMyTestString".IsLowerCase())
由於字符串中包含大寫字符,因此返回false。
怎么樣:
public bool IsLower(string TestString)
{
if (String.IsNullOrEmpty(TestString))
{
return true;
}
string testlower = TestString.ToLowerInvariant();
if (String.Compare(TestString, testlower, false) == 0)
{
return true;
}
else
{
return false;
}
}
balabaster,請不要將此方法與FindAll / Count一起使用。 所有你需要的是
return Input.ToList().Exists(c => Char.IsUpper(c));
它將停止對第一個大寫字符的迭代。FindAll創建一個新的List,並且您僅使用Count屬性。 如果我們有一個大寫的長字符串,您將得到原始字符串的副本。
伙計們為什么會濫用LINQ(ToList(),ToArray(),All(),Any(),...)? 我也喜歡LINQ和lambda,但是在這種情況下,我認為我們需要的是古老的foreach。 請參閱TcK的答案作為參考-但是如果我們刪除了多余的部分,我們會做得更好
char.IsLetter( c )
因為IsLower()正在執行相同的檢查。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.