java如何让我的程序接受带有大写字母或空格的回文?
import java.util.Scanner;
public class palindrome {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String word = sc.next();
String org_word = word;
word = word.replace(" ","");
String reverse = "";
for (int i = word.length()-1; i >=0; i--) {
reverse += word.charAt(i);
}
boolean palindrome = true;
for (int i= 0; i < word.length(); i++){
if(word.charAt(i) != reverse.charAt(i)){
palindrome = false;
}
}
if (palindrome) {
System.out.println("Your word is a palindrome!");
}
else System.out.println("Your word is not a palindrome!");
}
}
如果我在我的程序中输入一个回文,比如“racecar”,它会正确执行,但是如果我在“racecar”中键入一个空格,它就不起作用了。当我用大写字母开始一个单词时,它也不起作用
# 1 楼答案
您正在使用
scanner.next()
读入您的参数。在race car
的情况下,这意味着它将读入第一个单词:race
。这确实不是回文。要解决这个问题,需要使用scanner.nextLine()
读取所有内容,直到下一行为了忽略区分大小写,可以将所有输入更改为小写。string方法有一个非常有用的现成方法:
toLowerCase()