Okay, das ist mein erster Zeitbeitrag, so müssen Sie mich entschuldigen, wenn ich irgendwelche Fehler mache. Um es kurz zu machen: Ich habe eine Reihe von Strings erhalten, und mein Ziel ist es, die eindeutigen Wörter der Zeichenkette zu zählen und Interpunktionszeichen aus dem Array zu entfernen.Entfernen aller Nicht-Wort Zeichen (Interpunktion) von einer Zeichenfolge
public static HashMap<String, Integer> uniqueWords(String[] book) {
HashMap<String, Integer> hm = new HashMap<>();
for (int i = 0; i < book.length; i++) {
if (hm.containsKey(book[i])) {
hm.put(book[i], hm.get(book[i]) + 1);
} else {
book[i] = book[i].replaceAll("[^a-zA-Z]","").replaceAll("\\p{Punct}","").replaceAll("\\W+","").replaceAll("\\n","").toLowerCase();
hm.put(book[i], 1);
}
}
return hm;
}
Input: { "Rotbarsch", "Rotbarsch", "Rotbarsch", "Goldmakrele", "Blaufisch", "Blaufisch", "*", "%", ""};
Ausgang: {= 2, bluefish = 3, Rotbarsch = 3}
So habe ich es geschafft habe, um erfolgreich alle Leerzeichen zu entfernen, aber ich habe immer noch den Stern und die Perzentil gezählt.
Jede Hilfe ist willkommen, danke.
ich versuchte, einige Variationen dieses ohne Erfolg, vielen Dank für Ihre Lösung entweder Weg. –
Ich erkenne meinen Fehler. Es gibt selten Fälle, in denen ein Nicht-Wort-Zeichen nicht an eine Zeichenfolge mit einem Wort angehängt wird. In diesem Fall entfernt mein Code das Nicht-Wort-Zeichen: –
Hier ist die endgültige Version des Codes: public static HashMap uniqueWords (String [] book) { HashMap hm = new HashMap <>(); für (int i = 0; i