1 import java.util.Scanner;
2
3 public class PalindromeIgnoreNonAlphanumeric {
4
5 public static void main(String[] args) {
6
7 Scanner input = new Scanner(System.in);
8
9
10 System.out.print("Enter a string: ");
11 String s = input.nextLine();
12
13
14 System.out.println("Ignoring non-alphanumeric characters, \nis "
15 + s + " a palindrome? " + isPalindrome(s));
16 }
17
18
19 public static boolean isPalindrome(String s) {
20
21 String s1 = filter(s);
22
23
24 String s2 = reverse(s1);
25
26
27 return s2.equals(s1);
28 }
29
30
31 public static String filter(String s) {
32
33 StringBuilder stringBuilder = new StringBuilder();
34
35
36 for (int i = 0; i < s.length(); i++) {
37 if (Character.isLetterOrDigit(s.charAt(i))) {
38 stringBuilder.append(s.charAt(i));
39 }
40 }
41
42
43 return stringBuilder.toString();
44 }
45
46
47 public static String reverse(String s) {
48 StringBuilder stringBuilder = new StringBuilder(s);
49 stringBuilder.reverse();
50 return stringBuilder.toString();
51 }
52 }