我想检查两个字符串是否长度相同。我尝试了以下方法,但它不起作用。
string passnew = "1233";
string passcnfrm = "1234";
if((passnew.Length&&passcnfrm.Length)>6 ||(passnew.Length&&passcnfrm.Length)<15)
{
// ...
}
为什么不起作用?我需要改变什么?
答案 0 :(得分:9)
if(passnew.Length == passcnfrm.Length &&
passnew.Length > 6 && passnew.Length < 15)
{
// do stuff
}
答案 1 :(得分:3)
您缺少一些基本的语法课程。你在这些括号内写的是条件。我们有一元运算符(在一件事上运行),二元运算符(两个)和一个第三运算符(忘掉那个)。
你不能轻易地用“边界测试”来构建类似的东西。
一种可能的方式:
(passnew.Length > 6) && (passcnfrm.Length > 6)
但即使你可以使用这样的语法,你也不会测试长度是否相等。如果两者都长于6个字符且短于15个字符,您似乎想要进行比较。一个在7和一个在14将满足两个条件..
答案 2 :(得分:1)
if(passnew.Length == passcnfrm.Length &&
(passnew.Length < 15 && passnew.Length > 6))
{
// ...
}
检查两者的长度相同,且长度超过6且少于15个字符。
答案 3 :(得分:0)
那将是:
if(passcnfrm.Length.Equals(passnew.Length))
{
//do stuff
}
答案 4 :(得分:0)
可能更好的方法是:
if (( passnew != null && passcnfrm != null )
( passnew == passcnfrm )
&& ( passnew.Length > 6 && passnew.Length < 15 ))
{
// do stuff
}
在你可能需要的等式检查中隐藏长度检查,它不在您的问题中,但变量名称使得很明显您在那里进行密码更改功能。我添加了空检查以确保长度检查不会抛出NullReferenceException,因为您手动分配了两个,但是如果您稍后要将其转换为方法,则可能会省去一些麻烦。
答案 5 :(得分:0)
您可以这样使用: if(s.Contains(s1 [i]))
或:
boolean equalsIgnoreCase(String anotherString);
或使用此方法:
public static int occurrence(string [] a,string a2) { int occ = 0; for(int i = 0; i&lt; a.Length; i ++) { 如果(A [1] .Equals(A2)) { OCC ++; }
}
return occ;
}