如果你像你说的那样做,它不会进入 if 块,原因如下:
运算符应用于左侧的对象。因此,您的代码与编写此代码相同:
String myVar="in";
String testVar = myVar.ToUpper();
if(testVar=="in") //This will never be true
{
//do something
}
在您的编辑中,您仍然没有测试您的字符串是否为 == "IN",您正在进行 2 次测试以查看您的字符串是否为 == "in"。
如果您将原件更改为此它将起作用:
String myVar="in";
if(myVar.ToUpper()=="IN")
{
//do something
}
您的编辑应该是这样来测试这两种情况:
if((myVar.ToUpper().Equals("IN"))&&(myVar.Equals("in")))
编辑:史蒂文评论的更多解释:
if((myVar.ToUpper().Equals("IN"))&&(myVar.Equals("in")))
该代码示例进行了 2 次比较,但如果 myVar 只会是 in (IE: in in iN IN) 的混合大小写版本,则不需要进行第二次比较。将字符串转换为 ToUpper() 后,您只需检查它是否等于 IN。所以我会用:
if(myVar.ToUpper().Equals("IN"))
或者
if(myVar.ToUpper() == "IN")
我个人会使用 == 而不是 .Equals 方法。