String 将两个字符串与&&;但在这两种情况下都能找到对手

String 将两个字符串与&&;但在这两种情况下都能找到对手,string,match,String,Match,我试图获取一些输入字符串,并有一个 do { } while 循环将字符串与 while (!sqlw.equals(w) && !sqlc.equals(c)); 但是,如果其中一个匹配,而不是两个都匹配,则返回正匹配。有什么想法吗?我想这很简单。equals方法返回一个布尔值。尝试sqlw.equals('w')==false 还要确保两种情况下的数据类型相同。一个可能是字符串,另一个可能是某种数组对象。因此,在这行中: while (!sqlw.equals(w)

我试图获取一些输入字符串,并有一个

do {
} while 
循环将字符串与

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

但是,如果其中一个匹配,而不是两个都匹配,则返回正匹配。有什么想法吗?我想这很简单。

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


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

因此,在这行中:

while (!sqlw.equals(w) && !sqlc.equals(c)); 
如果sqlw.equals(w)为true(使!sqlw.equals(w)为false)或!sqlc.equals(c)为true(使!sqlc.equals(c)为false)

试着像这样用| |替换&&

while (!sqlw.equals(w) || !sqlc.equals(c));
这样,表达式只有在以下情况下才是错误的!等于(w)和!sqlc.equals(c)都是false(即当两者匹配时)

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

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

它的功能相同,但可能更忠实于您想要的内容(循环,而我们没有同时匹配两者)。

我们可以查看您的输入/输出吗?嗨-所以我设置了字符串sqlw=“”;和字符串sqlc=“”;在脚本前面,打开一个SQLdb,提取字段1和字段2,并将它们分配给sqlw ad sqlc。早期用户输入从操作按钮输入“w”和“c”。。。。。然后试着在W和C上找到匹配项,而不是在W或C上——这是通过Exclipse实现的Java XML。因此,当这些“w”和“c”不匹配时,while会填充,然后on match会退出while循环以显示匹配的数据。我们可以看到没有按照预期结果计算的确切值吗?is==而不是int,char而不是string?sqlw.equals('w')进行实际比较,并返回0或1的值(也可以是真或假)。因此,我在这里比较返回值。扩展代码为String sqlcost=“”;String sqlweather=“”;@Nigelflegg是的,永远不要对字符串使用“==”;始终使用.equals()。@Dennis the sqlw.equals('w'))==false只是比较.equals的返回值,它总是0或1。例如,我不是在这里比较字符串w到w。Brilliant-知道它必须是简单的——感谢大家的帮助……这修复了它。。。。