这个问题在这里已有答案:
回文是一个向后或向前读取相同的词。编写一个函数来检查给定的单词是否是回文。字符大小写应该被忽略。
我创建了一个方法isPalindrome(String word)
,检查传递的字符串是否为palindrome并返回布尔值。例如,isPalindrome("Deleveled")
应该返回true,因为应该忽略字符大小写,导致“deleveled”,这是一个回文,因为它向后和向前读取相同的内容。
这是错误:
Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at Main.main(Main.java:20)
我的代码是:
import java.util.Scanner;
public class Main{
static boolean isPalindrome(String word){
int c=word.length()-1;
boolean flag = false;
for(int i=0; i<word.length(); i++){
if(word.charAt(i)==word.charAt(c))
flag=true;
else
return false;
c--;
}
return flag;
}
public static void main(String []args){
Scanner scan = new Scanner(System.in);
String word= scan.nextLine();
System.out.println(isPalindrome(word));
scan.close();
}
}
你的代码很好。在比较之前,您只需要使用小写或大写。
static boolean isPalindrome(String word){
word=word.toLowerCase(); //Added this
int c=word.length()-1;
boolean flag = false;
for(int i=0; i<word.length(); i++){
if(word.charAt(i)==word.charAt(c))
flag=true;
else
return false;
c--;
}
return flag;
}
在调用scan.readLine()之前添加scan.hasNextLine()