Вы можете разделить это регулярное выражение:
String[] tok = input.split( "[\\W&&\\S]+" );
Это будет разделено на любое не-слово, которое также является непространственным символом, поэтому оставляя в стороне пробелы для разделения.
Проверьте классы символов в Справочник по шаблону Java .