回文词是向后或向前读相同的单词。 编写一个函数来检查给定的单词是否是回文。字符大小写应忽略。
我创建了方法isPalindrome(String word)
,该方法检查传递的字符串是否是回文,并返回布尔值。
例如,isPalindrome("Deleveled")
应该返回true,因为应该忽略字符大小写,从而导致“降级”,这是回文,因为它前后读取相同的内容。
这是错误:
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();
}
}
答案 0 :(得分:0)
您的代码很好。比较之前,您只需要写一个小写或大写的单词即可。
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;
}
答案 1 :(得分:0)
在调用scan.readLine()之前添加scan.hasNextLine()