Anagramm mit Strings und Methode

Java:
public static boolean anagramm( String s1, String s2) {
    s1 = s1.replaceAll(" ", "").toLowerCase();
    s2 = s2.replaceAll(" ", "").toLowerCase();
    if( s1.length() == s2.length();) {
    for(int i = 0; i < s1.length; i++) {
        if(s1.charAt(i) == s2.charAt()) {
            return s1.replace(i,"");
wäre das denn jetzt der Richtige weg? Bevor ich mich jetzt hier wieder fest fahre
Nachtrag: Oder muss ich noch eine zweite for schleife anlegen die s2 durchgefht?
 
wäre das denn jetzt der Richtige weg?
Nein. Jetzt lass endlich den Scheiß-Code weg.

So lange Du keine Lösungsidee in algorithmischer Weise beschreiben kannst, macht es keinen Sinn irgendwas herum zu programmieren. Der Lösungsansatz muss in erster Linie mal so genau sein, dass er nachvollziehbar ist - er muss sich noch nicht 1:1 in Methodenaufrufe übersetzen lassen.
 
1. Testen ob s1==s2
2. prüfen ob s1.charAt(0) in s2 vorhanden ist
3. falls true soll s1.charAt(0) aus s2 aus s1 und s2 entfernt werden
4. Wieder Testen ob s1==s2
5. wieder schritt 2 nur mit s1.charAt(1) bis s1,length && s2.length == 0 ist
 
Und was die Lösung von @abc66 angeht: Die ignorierst Du bitte einfach - er hat die gestellte Aufgabe nicht korrekt gelesen und bietet daher eine Lösung an, die eben auch nicht den Vorgaben entspricht. (Davon abgesehen ist es schlicht kontraproduktiv für Dein Verständnis, denn Du bist dicht dran es selbst gelöst zu haben. Es hat schon einen Grund, warum wir Dir nicht einfach eine fertige Lösung hinklatschen...
Oh, ich sehe gerade, mein Ansatz, alle umgekehrten Zeichen zu entfernen, ist in Bezug auf die Aufgabenstellung und allgemein zu kompliziert... Sorry for that.
 
@xImMonti Bei 1. und 4. ist vermutlich die Länge gemeint und 5. ist nicht ganz richtig, denn Du hast das erste Zeichen aus s1 bereits in 3. entfernt.
 
bekomme es immernoch nicht auf die Kette.. könntest du mir zeigen wie das funkioniert?
Was hast du denn bisher hin bekommen? In #50 steckt ja schon fast alles:
Code:
Wiederhole so lange s1 und s2 gleich lang und nicht leer sind {
    c := erstes Zeichen aus s1
    entferne alle Vorkommen von c aus s1 und s2
}
Gib zurück ob s1 und s2 leer sind.
Also hast Du da doch:

Code:
while (#s1 und s1 gleich lang# && #s1 und s2 nicht leer#) {
  char c = #erstes Zeichen aus s1#
  s1 = #s1 ohne c#
  s2 = #s2 ohne c#
}
return #s1 leer# && #s2 leer#
Jetzt muss du nur noch die Bereiche zwischen den #..# mit gültigem java code füllen...
Was hast Du denn da jeweils geschafft? Gib da mal an, was Du versucht hast ....
 
Passende Stellenanzeigen aus deiner Region:

Neue Themen

Oben