Ich habe versucht, eine Methode, die wahr zurückgibt, wenn "Strings" Anagramme sind. leider kann ich es nicht einmal testen und ich weiß nicht was falsch ist. Die Markierungen auf der linken Seite sagt:Warum bekomme ich "Duplicate Modifier für den Typ Test" und wie man es beheben kann
Mehrere Marker an dieser Linie - Breakpoint-: Test - Modifikator für den Test ein Duplikat
Hier ist der Quellcode:
package zajecia19;
import java.io.BufferedReader;
import java.io.FileReader;
import java.util.HashMap;
public
public class Test {
public static boolean Anagraamy(String s1, String s2) {
if (s1.length() != s2.length()) {
return false;
}
HashMap<Character, Integer> map = new HashMap<>();
for (int i = 0; i < s1.length(); i++) {
if (map.containsKey(s1.charAt(i))) {
map.put(s1.charAt(i), map.get(s1.charAt(i)) + 1);
} else {
map.put(s1.charAt(i), 1);
}
if (map.containsKey(s2.charAt(i))) {
map.put(s2.charAt(i), map.get(s2.charAt(i)) - 1);
} else {
map.put(s2.charAt(i), -1);
}
}
for(Integer value: map.values()){
if(value != 0){
return false;
}
}
return true;
}
public static void main(String[] args) {
try (BufferedReader br = new BufferedReader(new FileReader("slowa2"))) {
System.out.println(Anagraamy("abba", "babb"));
} catch (Exception e) {
e.printStackTrace();
}
}
}
Entfernen Sie die zusätzlichen 'public' aus Ihrem Code. – Kayaman
Eine Sache ist sehr wichtig beim Lernen von Java: Vertrauen Sie dem Compiler. Wenn es Ihnen etwas "Duplikat" sagt; und gibt dir eine Zeilennummer; als sich dieser Linie zuwenden und sehen, was da ist; und vielleicht was in den Zeilen davor steht. Außerdem: Vermeiden Sie es, viel Code zu schreiben, bevor Sie den Compiler ausführen. Versuche immer nur kleine Stücke zu schreiben (wovon du denkst: das sollte kompilieren); dann führe den Compiler aus; Fehler beheben; Wenn möglich, tun Sie den Code, um ihn zu testen. Zuerst 100 Zeilen Code schreiben; Dann fangen Sie an Fehler zu beheben macht das Ganze ** viel schwieriger für Sie! – GhostCat