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.
der Titel ist vielleicht etwas doof geschrieben. Ich suche gerade nach einer effizienten Lösungen wie ich einen String z. B.:
Java:
String test = "cs.fhm.edu";
umwandele zu: edu.fhm.cs
Also von vorne nach hinten umsortiere an einem Zeichen wie hier Beispielsweise der Punkt.
Meine erste Idee war das ganze wieder über Arrays zu lösen das wird aber sehr schnell recht Komplex und auch nicht wirklich schön.
Dann dachte ich an einen Stack doch muss wirklich für so eine "kleine" Aufgabe gleich eine ganzen Datenstruktur her?
Vielleicht denke ich auch wieder unnötig Kompliziert.
Hat da vielleicht jemand eine Idee?
StringJoiner joiner ist mir Unbekannt! Aber der ist ja mal super cool
Das mit der Split Methode ja ja an die hab ich auch nicht gedacht.
Mein Ansatz war bis jetzt so:
Java:
String s = "cs.fhm.edu";
char[] c = new char[s.length()];
int count = 0;
int length = s.length()-1;
for(int i=0;i<s.length();i++) {
if(s.charAt(i) == '.') {
count = i + 1 ;
for(int k=count;k>0;k--) {
c[length]=s.charAt(k);
length--;
}
}
}
for(int i=0;i<c.length;i++)
System.out.println(c[i]);
Das ganze läuft aber noch nicht! Deswegen kam es mir sehr Komplex vor. Denn da fehlt noch das Umdrehen des Strings des weiteren stimmt die Anpassung zum count noch nicht so hämmert er immer wieder von Angang an rüber und schreibt es ins Char Array. Hab bis jetzt nur 10 Minuten dran gesessen und dachte das kann nicht sein
Deswegen auch gleich der Post hier
So sieht das ganze ja schon viel schöner aus. Ich weiß ich muss die Methoden lernen die Java einem mitgibt Dachte nur es gäbe da vielleicht einen 0815 Algorithmus zu "diesem" Problem denn ich auch mal wieder (noch) nicht kenne!
Danke auch die httpdigest für die super Lösung aber da verstehe ich wie alt so oft nix das ganze hatte ich noch nicht.
Mein Problem ist einfach mich zu Lösen von dem Gedanken man muss nicht alles neu schreiben.
Wie würde man so ein Problem lösen in C z. B. da hat man die ganzen Methoden / Objekte etc. nicht. Deswegen suche ich oft nach Lösungen die nur mit Elementaren Anweisungen gelöst werden
so erledigt ist zwar total doof da ich so viele Schleifen habe. Leider weiß ich auch nicht wie ich es anders machen kann als vorher zu Prüfen wieviel Punkte im String sind. Naja so geht es jedenfalls auch
Java:
String s = "cs.fhm.edu";
int count = 0;
int length = s.length();
System.out.println(length);
char[] c = new char[length];
int anzahlPunkte = 0;
int q=0;
for(int i=0;i<s.length();i++)
if(s.charAt(i) == '.')
anzahlPunkte++;
for(int i=0;i<s.length();i++) {
if(anzahlPunkte>0) {
if(s.charAt(i) == '.') {
for(int j=i-1;j>=count;j--) {
System.out.println(j+" "+s.charAt(j));
length--;
c[length]=s.charAt(j);
}
length--;
c[length]='.';
count=i+1;
anzahlPunkte--;
}
}
else {
c[q]=s.charAt(i);
q++;
}
}
for(int i=0;i<c.length;i++)
System.out.print(c[i]);
Autsch Kopfschüttelnd !!!
Hatte vor kurzem schon mal eine Aufgabe gemacht war ähnlich wie diese. Dort ist mir dann später aufgefallen "Hey geht einfacher wenn man von Hinten ran geht!" D Hört sich etwas komisch an wenn ich es so schreibe )
Ja da habe ich mal wieder um 1000 Ecken gedacht.
Danke an euch alle für die Super schnelle Antworten und echt Klasse Programme kann man gut gebrauchen