
Possibly this? BTW thanks for spotting that. private String normalizeName(String authorString) { int separator = authorString.lastIndexOf(','); //normal date seperator if (separator != -1) { String possibleDate = authorString.substring(separator + 1); for (int i = 0; i < possibleDate.length(); i++) { if (Character.isDigit(possibleDate.charAt(i))) { //a date, hopefully... return exchangeNames(authorString.substring(0, separator)); } } //no date, but change the name anyway. return exchangeNames(authorString); } return authorString; } private String exchangeNames(String authorString) { normalizeString.setLength(0); exchangeNamesAuxSuffix(authorString); return normalizeString.toString(); } private void exchangeNamesAuxSuffix(String authorString) { int seperator = authorString.lastIndexOf(','); if (seperator == -1) { normalizeString.append(authorString); return; } normalizeString.append(authorString.substring(seperator + 2)).append(' '); exchangeNamesAuxPrefix(authorString.substring(0, seperator)); } private void exchangeNamesAuxPrefix(String authorString) { int seperator = authorString.indexOf(','); if (seperator == -1) { normalizeString.append(authorString); return; } normalizeString.append(authorString.substring(0, seperator)).append(' '); exchangeNamesAuxSuffix(authorString.substring(seperator + 2)); }