2016-12-24 11 views
3

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.

Antwort

0

Versuche so etwas wie diese -

public static HashMap<String, Integer> uniqueWords(String[] book) { 
    HashMap<String, Integer> hm = new HashMap<>(); 
string strBook = ""; 
int key = 1; 
    for (int i = 0; i < book.length; i++) { 
    strBook= book[i].replaceAll("[^a-zA-Z]","").replaceAll("\\p{Punct}","").replaceAll("\\W+","").replaceAll("\\n","").toLowerCase(); 
     if (!hm.containsKey(strBook)) { 
      hm.put(key, strBook); 
      key++; 
     } 
    } 
    return hm; 
} 
+0

ich versuchte, einige Variationen dieses ohne Erfolg, vielen Dank für Ihre Lösung entweder Weg. –

+0

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: –

+0

Hier ist die endgültige Version des Codes: public static HashMap uniqueWords (String [] book) { HashMap hm = new HashMap <>(); für (int i = 0; i

Verwandte Themen