Ich habe folgenden Anmerkungen und Kritikpunkte zu deinem Code:
Beachte bitte die Java-Namenskonventionen für Klassen (UpperCamelCase), Variablen (lowerCamelCase), und packages (Kleinbuchstaben).
Das ganze Hin und Her mit String abc, char[] ABC und ArrayList Abc ist extrem verwirrend (verschiedenen Objekttypen, aber sehr ähnliche Variablennamen, die sich nur durch Groß- und Kleinschreibung unterscheiden) und teilweise überflüssig. ABC wird zwar mit chars gefüllt, aber abgesehen davon, dass du mit einer for-Schleife über das Array drübergehst, wird es nirgends verwendet. Abc (die ArrayList) wird nie gefüllt (die entsprechende Zeile ist auskommentiert), aber in deiner V_nachricht Methode verwendet. Das Abc leer ist, sollte Abc.indexOf(char) stets -1 ergeben, was 2 Zeilen später zu einer ArrayIndexOutOfBoundsException führen sollte.
In der 2. for-Schleife der V_nachricht Methode legst du bei jedem Schleifendurchlauf die Hilfsvariable char[] Hilfe neu an. Da sie sich bei den ganzen Schleifendurchläufen nicht ändert, könntest du sie auch einmal vor der Schleife anlegen. Besser noch: du verzichtest auf diesen ganzen redundanten Kram und holst dir den char test mit Klartext.charAt(zähler).
Deine V_nachricht Methode gibt immer null zurück, daher ist dein Kommentar der Methode nicht nur „nicht so gut“, sondern einfach falsch und irreführend.
Wo ist die Klasse Schlüsselwort_Buchstaben_Trennung?
Zu guter Letzt: Selbst wenn die ArrayList Abc gefüllt werden würde, könnte dein Programm in der aktuellen Form nur mit Kleinbuchstaben umgehen, ohne das eine Exception fliegt. Wenn du was anderes eingibst (was wir nicht überprüfen können), knallt es trotzdem.