2012-07-10 91 views
-1

我试图采取一些输入字符串,并有匹配两个字符串&&但得到的要么匹配/或

do { 
} while 

循环匹配字符串与

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

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

+0

我们可以看到您的输入/输出吗? – 2012-07-10 21:50:32

+1

您使用哪种语言? – jeschafe 2012-07-10 21:51:54

+0

嗨 - 所以我设置字符串sqlw =“”;和String sqlc =“”;在脚本的前面,然后打开SQLdb并提取field1和field 2,并将这些分配给sqlw ad sqlc。早期的用户输入从动作按钮中放入“w”和“c”.....然后只需尝试在W和C而不是W或C上找到匹配项 - 这是通过Exclipse的Java XML。所以当这些“w”和“c”不匹配时一边做东西,然后就匹配掉while循环来呈现匹配的数据。 – 2012-07-10 21:53:33

回答

0

那么,事情是,在这一行:

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

表达为假如果任sqlw.equals(W)是真还是SQLC(使sqlw.equals(W)假的!)!等于(c)为真(使!sqlc.equals(c)为假)。

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

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

这样,表达式为假仅当!sqlw.equals(W)和!sqlc.equals(c)是两个假(即,当两者匹配)。

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

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

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

+0

辉煌 - 知道它必须是简单的东西----感谢大家的帮助....这固定它.... – 2012-07-10 22:19:11

0

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

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

+0

是==而​​不是int和char而不是字符串? – 2012-07-10 22:02:20

+0

sqlw.equals('w')进行实际的比较,并返回0或1的值(或者像你一样真或假)。因此我在这里比较了返回值。 – Shawn 2012-07-10 22:04:57

+0

扩展的代码是String sqlcost =“”; \t \t \t String sqlweather =“”; – 2012-07-10 22:05:26