Using Java, create a program that takes a string input and checks if it is a valid palindrome. A palindrome is a word, phrase, number, or sequence of characters that reads the same forward or backward. The program should be case-insensitive, meaning that "Racecar" and "racecar" would both be considered valid palindromes. Additionally, the program should ignore any punctuation or whitespace in the input. In the event that the input is a valid palindrome, the program should output "true". Otherwise, the program should output "false".
This prompt doesn't seem malicious.