return (input.substring(0, 1).equals(s)) &&
str1.contains(input, true) ||
str2.contains(input, true) ||
str3.contains(input, true)
上面这个我以为 (input.substring(0, 1).equals(s)) 这里为 false的时候,后面都是false了,
事实是,&& 和 || 的优先级是一样的,第一个&& 完了的结果会和后面的 || 再进行运算!!!
改成这样可以满足要求:把后面|| 的部分当成整体括起来!
return (input.substring(0, 1).equals(s)) &&
(str1.contains(input, true) ||
str2.contains(input, true) ||
str3.contains(input, true) )