如何解决Java 回文总是返回 true
我尝试通过使用 for 循环使用 JOptionPane 创建一个回文 java 程序,但无论输入是否真的是回文,它最终始终返回 true。如果你们知道下面的代码有什么问题,请帮忙,谢谢。
public class program {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
JOptionPane.showMessageDialog(null,"Welcome to The Palindrome!","Hello",JOptionPane.INFORMATION_MESSAGE);
String str = JOptionPane.showInputDialog("Please input a string");
int len = str.length();
int j = len - 1;
int i = 0;
boolean result;
for(i = 0; i <= (len - 1)/2; i++);
{
if(str.charAt(i) != str.charAt(j))
result = false;
j--;
}
if(result = true)
JOptionPane.showMessageDialog(null,str + " is a palindrome.","ByeBye",JOptionPane.INFORMATION_MESSAGE);
if(result = false)
JOptionPane.showMessageDialog(null,str + " is not a palindrome.",JOptionPane.INFORMATION_MESSAGE);
}
解决方法
不要使用传统的方式来检查回文,而是使用智能方式。给你
boolean result = str.equalsIgnoreCase(new StringBuffer(str).reverse().toString());
,
当您检查 result
的值时,您使用的是 =
,它将该值分配给 result
变量,并且始终计算为真。
要更正代码,您可以删除等号,也可以使用 result == true
(通常使用前者,因为它更简洁)。
然而,这可能会导致错误,因为您没有初始化 result 的值。我建议将其值设置为 true
作为默认值。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。