public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String word;
String c;
int x, count, count1;
System.out.println("Please enter a word:");
word=in.nextLine();
x=word.length();
count1=x;
for(count=0;count<x;count++) {
c=word.substring((count1)-1,count1);
System.out.print(c);
count1--;
}`
}
大家好,我编写此代码后会向后打印一个单词,但现在我想知道如何将其转换为回文检查器,但我感到困惑,因为最终产品实际上是由一堆单词组成的字符串c放在一起,所以我不知道如何将其与输入的原始单词进行比较。帮助吗?
答案 0 :(得分:0)
以方法签名和将从中返回的值开头:
private boolean isPalindrome(String word1, String word2) {
boolean isPalindrome = true; // let's initiate it to true
// ...
return isPalindrome;
}
然后,您可以使用已有的东西(我评论了不需要的部分:
x=word.length();
for(count=0;count<x;count++) {
// c=word.substring((count1)-1,count1);
// you can use word.charAt(count); instead
// System.out.print(c);
//count1--;
}`
在循环内,将word1.charAt(count)
与word2.charAt(count)
进行比较,如果两者不匹配,请将isPalindrome
更改为true。
您可能还想先检查两个字符串的长度是否相同。
答案 1 :(得分:0)
我发现有两种可能性可以在palindrom-checker中将其打开(我对您现有的代码进行了一点改动)
将字符串前半部分的字符与后半部分的字符进行比较,如下所示:
boolean isPalindrom = true;
for (int i= 0; i < (word.length()-1)/2; i++) {
if(word.charAt(i) != word.charAt(word.length()-1-i))
{
isPalindrom = false;
}
}
System.out.println(word + " is a palindrom: " + isPalindrom);
或
使用反向字符串,将其保存到另一个String
变量中,然后检查其是否等于您的单词。
像这样:
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
String word;
System.out.println("Please enter a word:");
word = in.nextLine();
String reverseString = "";
for (int i = 0; i < word.length(); i++) {
reverseString = reverseString + word.charAt(word.length()-1-i);;
}
System.out.println("original: " + word + ", reversed: " + reverseString);
boolean isPalindrom = word.equals(reverseString);
System.out.println(word + " is a palindrom: " + isPalindrom);
}
也许这对您也有帮助:Check string for palindrome