Hier ist die Problemstellung: Schreiben Sie eine Funktion, die 2 Zeichenfolgen vergleicht, um wahr oder falsch zurückzugeben, abhängig davon, ob beide Zeichenfolgen die gleichen Buchstaben enthalten. Ordnung spielt keine Rolle.Java Anfänger, Vergleichen von Zeichenfolgen in verschachtelten für Schleife
Ich weiß nicht, wie man die Zeichenarrays in meiner verschachtelten for-Schleife richtig vergleicht. Ich wünschte, ich könnte genauer auf mein Problem eingehen, aber ich bin ein wirklich neuer Lerner und kann nicht verstehen, warum das nicht funktioniert. Ich glaube, es macht nicht, was ich in den verschachtelten for-Schleifen möchte. Danke im Voraus!
import java.util.Scanner;
public class PracticeProblems {
public static boolean stringCompare(String word1, String word2) {
char[] word1b = new char[word1.length()];
char[] word2b = new char[word2.length()];
boolean compareBool = false;
for(int i = 0; i < word1.length(); i++) {
word1b[i] = word1.charAt(i);
word2b[i] = word2.charAt(i);
}
for(int i = 0; i < word1.length(); i++) {
for(int j = 0; j < word2.length(); j++) {
if(word1b[i] == word2b[j]) {
compareBool = true;
break;
} else {
compareBool = false;
break;
}
}
}
return compareBool;
}
public static void main(String []args) {
Scanner scan = new Scanner(System.in);
System.out.println("Word 1?");
String word1 = scan.nextLine();
System.out.println("Word 2?");
String word2 = scan.nextLine();
if(PracticeProblems.stringCompare(word1, word2) == true) {
System.out.println("Same Letters!");
} else {
System.out.println("Different Letters...");
}
}
Sie "brechen" immer beim ersten Mal durch die Schleife.Entfernen Sie die 'break' in' if' und belassen Sie die eine im 'else'. – resueman
Warum nicht einfach 'char [] word1b = word1.toCharArray();'? (Oder vergleichen Sie 'word1.charAt (i)' und 'word2.charAt (j)', was das Erstellen neuer Arrays vermeidet). –
Setzen Sie die Zeichen jeder 'Zeichenfolge' in ein' Set'. Dann vergleiche die Sets. –