Java Code:
1
| String author = array[j].trim().toUpperCase(); |
Ich glaube zwar auch nicht, dass DAS der Flaschenhalst ist, aber das toUpperCase kannst Du Dir vielleicht sparen. In Deiner Beispielausgabe sind die Namen jedenfalls auch nicht geuppercased.
Und um Marco's Tipp mit dem substring statt Split zu verfeinern. Das ist genau das, was der StringTokenizer macht. Den könnte man also auch noch ausprobieren.
Aber wie immer, keine Optimierung ohne Kontrolle, also um die entsprechenden Codeabschitte mal Zeitstempel setzen (System.currentTimeMillis), Differenzen bilden und mit System.out.printlin ausgeben lassen.