c#我如何比较两个匹配字母但一个有空格的字符串

时间:2013-02-06 11:50:56

标签: c# string if-statement whitespace equals

下面是我的代码,如何使if返回true,因为它当前跳过if语句,因为字符串值中有空格。

string instrucType = "FM";
string tenInstrucType = "FM ";
if (tenInstrucType.Equals(instrucType))
{
    blLandlordContactNumberHeader.Visible = true;
    lblLandlordContactNumber.Text = landlordData.LandlordContact.DefPhone;
    lblLandlordEmailHeader.Visible = true;
    lblLandlordEmail.Text = landlordData.LandlordContact.DefEmail;
}

5 个答案:

答案 0 :(得分:4)

使用修剪功能:

if (tenInstrucType.Trim().Equals(instrucType.Trim()))

这只会从两端修剪。如果中间可能有空格,请使用替换。

答案 1 :(得分:1)

如果空格仅位于字符串的末尾,则修剪两个字符串:

if (tenInstrucType.Trim().Equals(instrucType.Trim()))

如果要忽略所有空格字符,可以从字符串中删除它们:

string normalized1 = Regex.Replace(tenInstrucType, @"\s", "");
string normalized2 = Regex.Replace(instrucType, @"\s", "");

if (normalized1 == normalized2) // note: you may use == and Equals(), as you like
{         
    // ....
}

答案 2 :(得分:0)

试试这个条件:

if (tenInstrucType.Replace(" ",string.Empty).Equals(instrucType.Replace(" ",string.Empty))

答案 3 :(得分:0)

修剪字符串:

if (tenInstrucType.Trim().Equals(instrucType.Trim()))

答案 4 :(得分:0)

if (tenInstrucType.Replace(" ","").Equals(instrucType.Replace(" ","")))

使用Trim似乎适合这种情况,但请注意Trim仅删除前导或结尾空格;内部空间不会被移除。