如何让我的程序通过忽略非alpha字符和空格来检查它是否是一个回文

时间:2017-05-08 03:57:01

标签: java

如果所有字母都是相同的大小写且没有空格,那么此代码目前会检查它是否是回文。我试图让它忽略非alpha和white空格。

import java.util.*;

public class PalindromeTester
{
   public static void main(String args[])
   {
      String original, reverse = "";
      Scanner in = new Scanner(System.in);

      System.out.println("Enter a string to check if it is a palindrome");
      original = in.nextLine();

      int length = original.length();

      for ( int i = length - 1; i >= 0; i-- )
         reverse = reverse + original.charAt(i);

      if (original.equals(reverse))
         System.out.println("Entered string is a palindrome.");
      else
         System.out.println("Entered string is not a palindrome.");

   }
}

1 个答案:

答案 0 :(得分:1)

将变量“original”设置为下一行文本后,可以调用replaceAll()字符串方法以使用说明符参数去除任何不需要的字符。此外,您可以致电toLowerCase()以获取所有小写字符串。

  String original, reverse = "";
  Scanner in = new Scanner(System.in);

  System.out.println("Enter a string to check if it is a palindrome");
  original = in.nextLine();
  original = original.replaceAll("[^a-zA-Z]","").toLowerCase();

replaceAll()使用正则表达式搜索指定的文本,并将其替换为第二个参数值。

以下是回文“赛车”的快速示例:

    String original = "rA89293cEC@Ar";
    original = original.replaceAll("[^a-zA-Z]","").toLowerCase();
    System.out.println(original);