我是java的新手,我正在尝试创建一个回文单词程序,以检查单词后退是否相同。
public static void isPalindromeWord(){
Scanner input = new Scanner (System.in);
System.out.print("Enter a word to check: ");
String word = input.next().toLowerCase();
String reversed = new StringBuffer(word).reverse().toString();
int len = word.length();
for(int x = 0; x < len ; x++){
if(word.charAt(x) == reversed.charAt(x)){
System.out.println("True");
}else{
System.out.println("False");
}
}
}
请原谅我做错了什么,我今天才开始学习。
我的问题是:
有人能够善意地解释我出错的地方并建议如何解决它吗?我使用for循环的原因是因为任务要求我这样做。
答案 0 :(得分:2)
您非常接近解决方案。由于你已经颠倒了字符串,你可以检查它们是否相等
new StringBuffer(word).reverse().equals(word);
编辑:添加了另一个使用循环
的解决方案你在循环中做的事情大多是正确的。您True
获得oplko
是因为word.charAt(x) == reversed.charAt(x)
条件失败时您没有退出循环。这可以通过
public static void isPalindromeWord() {
Scanner input = new Scanner(System.in);
System.out.print("Enter a word to check: ");
String word = input.next().toLowerCase();
String reversed = new StringBuffer(word).reverse().toString();
int len = word.length();
for (int x = 0; x < len; x++) {
if (word.charAt(x) != reversed.charAt(x)) {
System.out.println("False");
return;
}
}
System.out.println("True");
}
答案 1 :(得分:1)
有很多方法可以做你想要的事情(包括Anthony C的非常优雅的答案),但这是一个让你工作的简单方法:
$mail->SetFrom('youremail@example.co.in', 'Contact');
答案 2 :(得分:1)
public static void isPalindromeWord(){
Scanner input = new Scanner (System.in);
System.out.print("Enter a word to check: ");
String word = input.next();
String reversed = input.next();
char c[]=word.toLowerCase().toCharArray();
char d[]=reversed.toLowerCase().toCharArray();
if(word.length() != reversed.length()) System.out.print("False ");
Arrays.sort(c);
Arrays.sort(d);
if(Arrays.equals(c,d)) System.out.print("True ");
else System.out.print("False ");
}
答案 3 :(得分:0)
只是描述你有错的地方。你在循环的每一步都在控制台上写,你有什么比较结果并不重要。
boolean isPolindrom = true;
for(int x = 0; x < len ; x++){
isPolindrom = (word.charAt(x) == reversed.charAt(x)); //compare chars and store result into variable
if (!isPolindrom) { //if chars are different break a loop, because word is already not a polindrom
break;
}
}
System.out.println(isPolindrom); //output result
来自@AnthonyC的解决方案真的更好