Как я могу заставить свою программу проверить, является ли слово палиндромом, независимо от регистра, введенного пользователем - PullRequest
0 голосов
/ 06 апреля 2020
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 - это палиндром, но он говорит, что его нет в коде, который я сделал. Я хотел бы любую помощь, если это возможно, спасибо.

Ответы [ 4 ]

3 голосов
/ 06 апреля 2020

Взять ввод и вызвать toUpper (); таким образом, когда вы проверяете, является ли это палиндромом, все символы в верхнем регистре.

String ori = scr.nextLint();
if(isPalindrome(ori.toUpperCase()))
//do something
2 голосов
/ 06 апреля 2020

Вы можете преобразовать все буквы в нижний регистр перед началом обработки.

Вы можете написать свою собственную функцию или использовать 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;
}
1 голос
/ 06 апреля 2020

Увеличьте изображение с обоих концов и отрегулируйте регистр по необходимости.

    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;
    }
1 голос
/ 06 апреля 2020

Перед проверкой палиндрома преобразовать все регистры в строчные и прописные буквы

isPailindrome(ori.toLowerCase());

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...