dai*_*dai 16 c# string visual-studio-2010
假设我有2个字符串.第一个字符串是x ="abc",第二个字符串是y ="ABC".当我在c#中写下代码:
if(x == y)
Run Code Online (Sandbox Code Playgroud)
要么
if(x.Equals(y))
Run Code Online (Sandbox Code Playgroud)
返回值为true.如何查看大小写?
Tim*_*ter 26
返回值不是, true
但false
因为.NET默认情况下区分大小写.
此方法执行序数(区分大小写和文化不敏感)比较.
对于==
相同的,因为是真实的String.Equality
运营商电话Equals
:
此运算符使用Equals方法实现,这意味着对比例进行了参考和值相等的组合测试.此运算符执行序数比较.
这将比较不区分大小写:
bool equals = x.Equals(y , StringComparison.OrdinalIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
如果您只想知道字符是大写还是小写,可以使用以下方法:
bool isUpperChar = Char.IsUpper("ABC"[0]); // yes
bool isLowerChar = Char.IsLower("ABC"[0]); // no
Run Code Online (Sandbox Code Playgroud)
首先,你应该决定是否你比较字符串culture dependent
或独立的俄罗斯文化信件的方式(例如,"E"和"Ё"往往将其视为是相同的;芬兰倾向于把"V"和"W"为同一等. ).接下来你应该选择是否使用用例("a"v."A").所以有6种可能的比较:
序数(独立于文化)比较:
// Ignore case comparison
Boolean equals = String.Equals(x, y, StringComparison.OrdinalIgnoreCase);
// Case comparison
Boolean equals = String.Equals(x, y, StringComparison.Ordinal);
Run Code Online (Sandbox Code Playgroud)
目前的文化比较:
// Current culture, ignore case comparison
Boolean equals = String.Equals(x, y, StringComparison.CurrentCulture);
// Current culture, case comparison
Boolean equals = String.Equals(x, y, StringComparison.CurrentCultureIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
明确的文化比较:
CultureInfo culture = new CultureInfo("Ru-ru"); // <- Or whatever you want
// Explicit culture, ignore case comparison
Boolean equals = culture.CompareInfo.Compare(x, y, CompareOptions.IgnoreCase);
// Explicit culture, case comparison
Boolean equals = culture.CompareInfo.Compare(x, y, CompareOptions.None);
Run Code Online (Sandbox Code Playgroud)
尝试:
区分大小写:
String.Equals (a,b)
Run Code Online (Sandbox Code Playgroud)
不区分大小写
string.Equals(a, b, StringComparison.CurrentCultureIgnoreCase);
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
23551 次 |
最近记录: |