将两个字符串与&&但是在/或得到匹配

时间:2012-07-10 21:47:57

标签: string match

我正在尝试使用多个输入字符串并拥有

do {
} while 

循环匹配字符串

while (!sqlw.equals(w) && !sqlc.equals(c)); 

然而,如果其中一个匹配,则返回正匹配,而不是两者。有任何想法吗?我想这很简单。

2 个答案:

答案 0 :(得分:0)

equals方法返回一个布尔值。尝试sqlw.equals('w')== false。

同时确保两种情况下的数据类型相同。一个可能是一个字符串,另一个是某种数组对象。

答案 1 :(得分:0)

所以,事情是,在这一行:

while (!sqlw.equals(w) && !sqlc.equals(c)); 

如果sqlw.equals(w)为true(使得!sqlw.equals(w)为false)或!sqlc.equals(c)为true(使得!sqlc.equals(c)为false),则表达式变为false。

尝试更换&&与||像这样

while (!sqlw.equals(w) || !sqlc.equals(c));

这样,只有当!sqlw.equals(w)和!sqlc.equals(c)都为假(即两者都匹配)时,表达式才为假。

编辑:您也可以将其更改为

while (!(sqlw.equals(w) && sqlc.equals(c)));

它做了同样的事情,但也许更忠实于你想要的东西(循环而我们没有匹配两者)。