我如何让我的程序检查单词是否是回文,无论用户输入的是什么情况

问题描述 投票:1回答:4
import java.util.Scanner;
public class Pailindrome
{
public static void main(String [] args)
{
Scanner sc1 = new Scanner(System.in);
System.out.println("Please enter a word");
String ori = sc1.nextLine();
isPailindrome(ori);
if(isPailindrome(ori))
}
System.out.println(ori + "is a Pailindrome");
}
else
{
System.out.println(ori + "is NOT a Pailindrome");
}
}
public static boolean isPailindrome (String ori)
{
int i =0;
int j = ori.length()-1;
while(i<j)
{
if(ori.charAt(i) != ori.charAt(j))
{
return false;
}
i++;
j--;
}
return true;
}
}

该代码可以正常工作,我只是不知道大小写如何使它工作由用户输入。例如,aBba是一个回文,但是它说的不在我编写的代码中。一世需要任何帮助,谢谢。

java palindrome
4个回答
2
投票

接受输入并调用toUpper();这样,当您检查它是否是回文集时,所有字符都是大写。

String ori = scr.nextLint();
if(isPalindrome(ori.toUpperCase()))
//do something

0
投票

您可以在开始处理之前将所有字母都转换为小写。

您可以编写自己的函数或使用toLowerCase()字符串函数。

import java.util.Scanner;
public class Pailindrome {
 public static void main(String[] args) {
  Scanner sc1 = new Scanner(System.in);
  System.out.println("Please enter a word");
  String ori = sc1.nextLine();
  ori = ori.toLowerCase();
  isPailindrome(ori);
  if (isPailindrome(ori))
 }
 System.out.println(ori + "is a Pailindrome");
} else {
 System.out.println(ori + "is NOT a Pailindrome");
}
}
public static boolean isPailindrome(String ori) {
 int i = 0;
 int j = ori.length() - 1;
 while (i < j) {
  if (ori.charAt(i) != ori.charAt(j)) {
   return false;
  }
  i++;
  j--;
 }
 return true;
}

0
投票

检查回文之前将所有情况转换为小写/大写

isPailindrome(ori.toLowerCase());


0
投票

从两端放大并根据需要调整外壳。

    public static boolean isPalindrome(String str) {
        int len = str.length();
        for (int i = 0; i < len >>1; i++) {
            if (Character.toLowerCase(str.charAt(i)) != 
                    Character.toLowerCase(str.charAt(len - i - 1))) {
                return false;
            }
        }
        return true;
    }
© www.soinside.com 2019 - 2024. All rights reserved.