Wednesday, 24 June 2015

Palindromes

public class Palindrome

{

  public static boolean isPalindrome(String stringToTest)

  {

    String workingCopy = removeJunk(stringToTest);

    String reversedCopy = reverse(workingCopy);

    return reversedCopy.equalsIgnoreCase(workingCopy);

  }


  protected static String removeJunk(String string)

  {

    int i, len = string.length();

    StringBuffer dest = new StringBuffer(len);

    char c;


    for (i = (len - 1); i >= 0; i--) {

      c = string.charAt(i);

      if (Character.isLetterOrDigit(c))

      {

        dest.append(c);

      }

    }

    return dest.toString();

  }


  protected static String reverse(String string)

  {

    StringBuffer sb = new StringBuffer(string);

    return sb.reverse().toString();

  }


  public static void main(String[] args)

  {

    String string = "Madam, I'm Adam.";

    if (isPalindrome(string)) {

      System.out.println("It IS a palindrome!");

    }

  }


}

No comments:

Post a Comment