OOP Testen ob 2 Strings gleich sind

pinkrocker

Mitglied
Hallo,
ich würde gerne testen, ob 2 Strings genau gleich sind und zwar ohne .sort zu verwenden.
Hier mal mein Code:

Java:
	private static boolean areAnagrams(String a, String b) {
		if(a.length() != b.length())
			  return false;
		char [] newA = new char [a.length()];
		char [] newB = new char [b.length()];
		for (int i = 0; i < a.length(); i++) {
			newA [i] = a.charAt(i);
			newB [i] = b.charAt(i);
		}
		for (int i = 0; i < a.length(); i++) {
			for (int j = 0; j < a.length(); j++) {
				if (newA [j] < newA [i]) {
					newA [i] = newA [j];
				}
			}
			for (int j = 0; j < b.length(); j++) {
				if (newB [j] < newB [i]) {
					newB [i] = newB [j];
				}
			}
		}
		if (newA.equals(newB)) {
			return true;
		}

		return false;
	}

ich weiß nicht genau wo mein Fehler liegt.
Prinzipiell müssten doch die einzelnen character in meinem char[] array geordnet gespeichert werden oder?

pinkrocker
 

stg

Top Contributor
Nur anhand des Methodennamens kann man überhaupt erahnen, was du eigentlich vorhast :eek:

Ich würde eine Art "BucketSort" vorschlagen. Durchlaufe einmal den ersten Sting und zähle dabei alle a's, alle b's ... dann beim zweiten das gleiche. Anschließend musst du nur deine Zählerstände vergleichen. so läuft dein Algorithmus insgesamt sogar in linearer zeit.
 

Thallius

Top Contributor
Wie wäre ein ganz anderer Ansatz

Hole dir den ersten Buchstaben des ersten Strings. Gehe nun durch den zweiten String. Findest du den Buchstaben nicht -> Return false. Findest du ihn, dann setzt du den Wert des Char im zweiten String auf 0 und -> Break; dann nächsten Buchstaben aus ersten String. Das ganze bis du durch den ersten string durch bist. Nun muss der gesamte zweite string nur noch aus 0 bestehen oder -> return false.

Gruss

Claus
 

pinkrocker

Mitglied
Nur anhand des Methodennamens kann man überhaupt erahnen, was du eigentlich vorhast :eek:

Ich würde eine Art "BucketSort" vorschlagen. Durchlaufe einmal den ersten Sting und zähle dabei alle a's, alle b's ... dann beim zweiten das gleiche. Anschließend musst du nur deine Zählerstände vergleichen. so läuft dein Algorithmus insgesamt sogar in linearer zeit.

ok, tut mir leid, war wirklich falsch formuliert.
Ich probier das mal so.
 

ceving

Aktives Mitglied
Java:
	private static boolean areAnagrams(String a, String b) {

Immer erst mal suchen, ob das nicht schon jemand gemacht hat.

Java:
new StringBuilder(a).reverse().toString().equals(b);

In den aller seltensten Fällen steht man vor einer Aufgabe, die nicht schon jemand anders vor einem gelöst hat.
 

Thallius

Top Contributor
Immer erst mal suchen, ob das nicht schon jemand gemacht hat.

Java:
new StringBuilder(a).reverse().toString().equals(b);

In den aller seltensten Fällen steht man vor einer Aufgabe, die nicht schon jemand anders vor einem gelöst hat.

Er will feststellen ob string b ein anagramm von string a ist und nicht ob string a rückwärts gelesen string b ergibt.

Gruss

Claus
 
Zuletzt bearbeitet:

Der

Mitglied
Also da das Thema - trotz schon funktionierenden Lösungen - noch nicht beendet ist gehe ich davon aus, dass du auch wissen willst "wo genau dein Fehler liegt".

Hier liegt ein Fehler (meiner Meinung nach der einzige):
Java:
        for (int i = 0; i < a.length(); i++) {
            for (int j = 0; j < a.length(); j++) {
                if (newA [j] < newA [i]) {
                    newA [i] = newA [j]; // Hier wird newA[i] überschrieben und geht verloren, es wird nirgendwo mehr gespeichert, es wird nicht an eine Andere stelle gelegt.
                }
            }
            for (int j = 0; j < b.length(); j++) {
                if (newB [j] < newB [i]) {
                    newB [i] = newB [j];
                }
            }
        }

Bei newB ist es natürlich genauso!

Beheben musst du den Fehler selbst.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
R Teilinhalt eines Strings testen Java Basics - Anfänger-Themen 10
L Methoden Eine Methode um zu testen ob es ein Nachbar gibt Java Basics - Anfänger-Themen 10
U JUnit testen auf SomeException Java Basics - Anfänger-Themen 5
U Sortierung in collections testen Java Basics - Anfänger-Themen 11
Düsseldorf2002 Testen meines Algorithmus Java Basics - Anfänger-Themen 1
nonickatall Ausführbarkeit von Code testen bzw. Remote Debugging Java Basics - Anfänger-Themen 4
Y Wie kann ich Konsoleneingaben durch den Scanner mit JUnit 4 testen? Java Basics - Anfänger-Themen 1
B JUnit 4: Wie man die eigene Liste testen kann [TDD] Java Basics - Anfänger-Themen 46
G Java Objekte auf Duplikate testen Java Basics - Anfänger-Themen 4
N Länge eines Arrays in einem Objekt testen Java Basics - Anfänger-Themen 51
T Kann jemand kurz das Programm testen? Java Basics - Anfänger-Themen 13
J RSA Verschlüsselung Testen / byte[] in Objekt umwandeln Java Basics - Anfänger-Themen 1
X Nach einem Bruch testen ob es eine ganze Zahl ist Java Basics - Anfänger-Themen 6
J Womit kann ich diese Methode testen? Java Basics - Anfänger-Themen 5
N JUnit und private Methoden testen. Java Basics - Anfänger-Themen 9
scratchy1 doppelt verkettete Liste testen Java Basics - Anfänger-Themen 8
K Testen in BlueJ Java Basics - Anfänger-Themen 2
J LocalDateTime testen mit Junit Java Basics - Anfänger-Themen 20
I Erste Schritte Testen, ob eine Zahl eine Primzahl ist Java Basics - Anfänger-Themen 8
G Testen mit JUnit Java Basics - Anfänger-Themen 4
J Worte auf Gültigkeit bzgl. Alphabet testen Java Basics - Anfänger-Themen 1
T OOP Zwei Klassen Testen (Arrary Iterieren) Java Basics - Anfänger-Themen 6
A IllegalArgumentException in JUnit testen Java Basics - Anfänger-Themen 3
V ToString-Methode mit JUnit testen(BlueJ) Java Basics - Anfänger-Themen 10
K Testen von Methoden Java Basics - Anfänger-Themen 5
kilopack15 Java Array Skalarprodukt testen Java Basics - Anfänger-Themen 21
K Testen von Methoden Java Basics - Anfänger-Themen 1
S File mit canRead() testen Java Basics - Anfänger-Themen 4
A Exception vs. Testklasse (Programm testen) Java Basics - Anfänger-Themen 2
I Programm testen, aber wie? Java Basics - Anfänger-Themen 14
S Double und Gleitkommazahlen mit JUnit testen Java Basics - Anfänger-Themen 7
W Testen auf Existenz des Verzeichnisses Java Basics - Anfänger-Themen 4
M Wie private Methoden mit Asserstions testen? Java Basics - Anfänger-Themen 3
B Void Mehoden Testen Java Basics - Anfänger-Themen 13
G Java Applet aus Eclipse heraus testen? Java Basics - Anfänger-Themen 6
E Arrays testen Java Basics - Anfänger-Themen 4
D Assertion Error beim Testen Java Basics - Anfänger-Themen 4
T Junit --Exception testen Java Basics - Anfänger-Themen 15
S Sortierverfahren - wie Stabilität testen (im array) Java Basics - Anfänger-Themen 3
M JUnit - nur einzelne Methode testen? Java Basics - Anfänger-Themen 4
B Testen eines Bridge-Spiels Java Basics - Anfänger-Themen 5
W Mit jUnit Array testen? Java Basics - Anfänger-Themen 5
Spin JUNIT Test Case - Problem bei testen Java Basics - Anfänger-Themen 2
H Input/Output Testen ob Datei leer Java Basics - Anfänger-Themen 14
C Methode Testen Java Basics - Anfänger-Themen 12
J Programm in main Methode testen Java Basics - Anfänger-Themen 29
C Klammerung testen Java Basics - Anfänger-Themen 10
turmaline JUnit testen ob keine Exception auftritt Java Basics - Anfänger-Themen 23
xehpuk In JUnit über eigenen Thread testen Java Basics - Anfänger-Themen 3
? Fehler bei Testen Java Basics - Anfänger-Themen 17
vandread Internationalisierung von einem Projekt testen? Java Basics - Anfänger-Themen 2
F Interface Testen Java Basics - Anfänger-Themen 5
T Methoden Testen und schaun ob richtiges Ergebnis? Java Basics - Anfänger-Themen 5
J Testen Java Basics - Anfänger-Themen 3
Houly Setter/Getter MEthoden testen Java Basics - Anfänger-Themen 4
B OOP Testen - JUnit Java Basics - Anfänger-Themen 30
J Hash-Maps / ArrayLists testen Java Basics - Anfänger-Themen 12
A Programm mit Daten einer Datei testen Java Basics - Anfänger-Themen 4
G netzwerkapplikationen testen Java Basics - Anfänger-Themen 7
S Testen ob ein String ein Datum ist. Java Basics - Anfänger-Themen 5
T Testen ob eine Zahl im array doppel vorkommt. Java Basics - Anfänger-Themen 7
G *.java Datei mit Editor starten und testen Java Basics - Anfänger-Themen 6
reno Testen ob String leer ist Java Basics - Anfänger-Themen 12
G testen ob int gleich null Java Basics - Anfänger-Themen 15
G testen ob in String zahl Java Basics - Anfänger-Themen 10
K Program Testen mit Macintosh Java Basics - Anfänger-Themen 2
F Testen ob Double-Variable Java Basics - Anfänger-Themen 13
G SSL Verbindung testen? Java Basics - Anfänger-Themen 1
G Methoden mit Junit testen? Java Basics - Anfänger-Themen 2
M Kostenloser webspace zum testen von Javaprogrammen ? Java Basics - Anfänger-Themen 3
A mit Junit testen Java Basics - Anfänger-Themen 7
G Baum testen Java Basics - Anfänger-Themen 20
H Testen, ob Thread schläft Java Basics - Anfänger-Themen 3
S Testen ob ein Char Array noch nicht belegt ist! Java Basics - Anfänger-Themen 3
M Testen ob ein Sample noch abgespielt wird Java Basics - Anfänger-Themen 6
G wie eine selbstgeschriebene Klasse testen? Java Basics - Anfänger-Themen 15
P programm testen ohne main-funktion Java Basics - Anfänger-Themen 19
B Klammerung testen Java Basics - Anfänger-Themen 12
W Gleichzeitiges ersetzen mehrerer Strings Java Basics - Anfänger-Themen 7
R Datentypen Das Verhalten von Strings als Datentypen Java Basics - Anfänger-Themen 7
N Nachkommastellen von Strings Java Basics - Anfänger-Themen 3
T Strings unveränderlich???? Java Basics - Anfänger-Themen 22
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
S Die durchschnittliche Länge der Strings Java Basics - Anfänger-Themen 11
M Operatoren Strings mit Vergleichsoperatoren, funktioniert das? Java Basics - Anfänger-Themen 9
S Variablen Letzte Zeile eines Strings entfernen Java Basics - Anfänger-Themen 1
D Strings aus Excel-Datei einlesen Java Basics - Anfänger-Themen 2
P9cman Tipps für Rekursive Aufgaben mit Strings oder allgemein Java Basics - Anfänger-Themen 2
sserio StringBuilder und Strings Java Basics - Anfänger-Themen 8
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
schredder Strings und reguläre Ausdrücke - Methode mit return string.matches Java Basics - Anfänger-Themen 5
B Konkatenieren eines Strings und inkremtierenden Zahl zu einer INT Variablen Java Basics - Anfänger-Themen 7
N Strings verpflechten Java Basics - Anfänger-Themen 4
G Strings auf Gleichheit prüfen - Aufgabe vom Prof. Java Basics - Anfänger-Themen 5
A 2 Strings vergleichen in einer methode wenn man mit Globalen variablen arbeitet Java Basics - Anfänger-Themen 12
L Strings aneinanderhängen Java Basics - Anfänger-Themen 2
M Strings vergleichen Java Basics - Anfänger-Themen 10
Nerdinfekt BMI Rechner, fehler beim Zurückgeben des Strings? Java Basics - Anfänger-Themen 2
U Problem mit dem initialisieren meines Strings in einer Schleife Java Basics - Anfänger-Themen 5
S 2 Strings mit Equals vergleichen Java Basics - Anfänger-Themen 11

Ähnliche Java Themen

Neue Themen


Oben