如何仅检查两个字符串的大小写差异?
How to check two strings for difference in casing only?
可能有以下几对字符串。现在我的目标是只检测第一个例子中的大小写差异:
- "abC","abc"
- "abc","abc"
- „abDef","abc"
我的方法是首先在 C# 中将字符串与 ignorecase = true 进行比较:
String.Compare(string1, string2, true)
returns 0 表示 1.+2。和 returns 1 代表 3. 可能性
所以检查结果为 0 我可以将我的结果缩小到两种可能性,我现在用 ignorecase = false:
String.Compare(string1, string2, false)
所以现在检查 0 会给我正确的结果。有没有更好的解决方案可以在一个比较步骤中实现这一目标?
String.Compare 的存在是为了涵盖您建议的相反场景,但在排序场景的上下文中,您可以使用 == 0
或不等式 !=0
[=16 来实现相等性=]
String.Equals 执行与 String.Compare 相同的评估逻辑,但专门针对相等情况。
你检测 in-equality only based on casing 的问题意味着你将不得不在两次检查中完成,否则字符串根本不相等会 return 错误的否定响应。
想到以下选项:
public static bool IsSimilarButDifferentCase(string input1, string input2)
{
// satisfy the first criteria
if (input1.Equals(intput2, StringComparison.InvariantCultureIgnoreCase))
{
// check that it is now NOT the same
return !input1.Equals(intput2, StringComparison.InvariantCulture)
}
return false;
}
您还可以通过转换为小写(或大写)并直接使用比较运算符来执行以下内联操作:
input1.ToLower() == input2.ToLower() && input1 != input2
根据您的业务需求,请随意向我们提供不同的文化超载或上述所有内容的变体。
可能有以下几对字符串。现在我的目标是只检测第一个例子中的大小写差异:
- "abC","abc"
- "abc","abc"
- „abDef","abc"
我的方法是首先在 C# 中将字符串与 ignorecase = true 进行比较:
String.Compare(string1, string2, true)
returns 0 表示 1.+2。和 returns 1 代表 3. 可能性
所以检查结果为 0 我可以将我的结果缩小到两种可能性,我现在用 ignorecase = false:
String.Compare(string1, string2, false)
所以现在检查 0 会给我正确的结果。有没有更好的解决方案可以在一个比较步骤中实现这一目标?
String.Compare 的存在是为了涵盖您建议的相反场景,但在排序场景的上下文中,您可以使用 == 0
或不等式 !=0
[=16 来实现相等性=]
String.Equals 执行与 String.Compare 相同的评估逻辑,但专门针对相等情况。
你检测 in-equality only based on casing 的问题意味着你将不得不在两次检查中完成,否则字符串根本不相等会 return 错误的否定响应。
想到以下选项:
public static bool IsSimilarButDifferentCase(string input1, string input2)
{
// satisfy the first criteria
if (input1.Equals(intput2, StringComparison.InvariantCultureIgnoreCase))
{
// check that it is now NOT the same
return !input1.Equals(intput2, StringComparison.InvariantCulture)
}
return false;
}
您还可以通过转换为小写(或大写)并直接使用比较运算符来执行以下内联操作:
input1.ToLower() == input2.ToLower() && input1 != input2
根据您的业务需求,请随意向我们提供不同的文化超载或上述所有内容的变体。