Du verwendest einen veralteten Browser. Es ist möglich, dass diese oder andere Websites nicht korrekt angezeigt werden. Du solltest ein Upgrade durchführen oder ein alternativer Browser verwenden.
aber der Ausdruck "args[0].charAt(0)" verweist doch auf ein Zeichen?! oder nicht
replaceall kenne ich net ^^ steht irgendiwie net im buch. Muss doch auch irgenwie so gehen?
replace() ersetzt einfach alle Vorkommnisse eines Buchstabens durch einen anderen, shiften kannst du da überhaupt nichts... Wenn schon, solltest du dir substring() anschauen...
Ich würde die Lösung mit den Regulären Ausdrücken bevorzugen, sie sind aber nicht immer schnell zu lesen.
Aber wie schon erwähnt - substring Rockt
Beispiel
Java:
public class Main {
public static void main(String[] args) {
String word = "abc";
String res = word.substring(2) + word.charAt(0) + word.charAt(1);
System.out.println(res);
}
}
Also wenn mein einfacher Regex nicht einfach zu lesen ist - naja, die einen bevorzugen [c](.{2})[/c] statt [c](..)[/c], meiner ist aber kürzer. Abgesehen davon muss man sich da nicht um ArrayIndexOutOfBoundException's etc kümmern.
Ich stimm da faetzminator voll zu. Reguläre Ausdrücke sind ne feine Sache und ich würde auch jeden empfehlen, ihre Funktionsweise zu erlernen.
Beispiel:
Der Klassiker, Emailadressen prüfen (ich hab jetzt den erst beste gegriffen):
^([ _a-zA-Z0-9-]+)(\.[a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+([a-zA-Z]{2,4})$
Wer das mit String Operationen abbilden will, ist erst mal ne weile lang beschäftigt. Mit regulärem Ausdrücke brauch man 1 Zeile. Per Hand, vielleicht so um die 20. Und wehe, man macht in den 20 Zeilen einen Logikfehler. Dann fängt man wieder von vorne an.
charAt() gibt doch einen char zurück, den du hier als int interpretierst. Falls ein a an zweiter Stelle (charAt(1)) steht, wäre das 97, für b 98 usw. Dein String ist wahrscheinlich gar nicht so lang. Um den ersten Buchstaben ans Ende zu schieben könttest du schreiben:
[c]args[0] = args[0].substring(1,args[0].length())+args[0].charAt(0);[/c]
danke jetzt geht das ^^
was passiert da im einzellen in diesem ausdruck, weil ich das irgendwie noch nicht richtig verstehe. Ja ich weiß er verschiebt ^^
mit substring schneide ich den Teil vom zweiten Buchstaben bis zum letzten Buchstaben aus. Dann hänge ich den ersten Buchstaben daran, den ich mit charAt(0) erhalte.