Why don't you try Patterns and Unicode categories?
For instance:
Pattern pattern = Pattern.compile("\\p{P} ");
Matcher matcher = pattern.matcher("Hi, my name is Tom Cruise. I like movies");
while (matcher.find()) {
System.out.println(matcher.group());
}
The Pattern here searches for any punctuation followed by a space. The output will be:
,
.
(notice the space after the comma and the dot)
You could probably refine your Pattern by specifying which exact punctuation characters are eligible to be followed by a space.
Finally, in order to check for the opposite (a punctuation character not followed by whitespace):
Pattern otherPattern = Pattern.compile("\\p{P}\\S");