1. Statistik Die Anzahl der Zeichenfolgenbuchstaben (und behalten Sie alphabetische Reihenfolge)
Zum Beispiel: aabbbbbbbba OH BCAB CDABC DEAAA
Es gibt 5 Möglichkeiten, die ich kenne. Wenn Sie bessere haben, geben Sie mir bitte einen Rat.
// Methode 1 public static void LetterCount1 (String S) {S = S.Replaceall (" +", ""); // 1, in Charakter Array char c [] = s.tharArray () konvertieren; Karte <Charakter, Integer> Tree = New Treemap <Zeichen, Integer> (); für (int i = 0; i <c.Length; i ++) {// zuerst: a, 1 // zweites Mal: a, 2 // 2, den Wert, der dem Schlüssel -Ganzzahl value = tree.get (c [i]) entspricht. // 3, speichern Sie den Urteilsbaum.put (c [i], value == null? 1: value+1); } // Wenn das Ergebnisformat erforderlich ist: a (5) b (4) c (3) d (2) e (1) StringBuilder sbu = new StringBuilder (); für (Zeichenschlüssel: tree.keyset ()) {Integer count = baum.get (Schlüssel); } // SBU in String system.out.println (sbu.toString ());} // Methode 2 Verwenden Sie Stream //. Dies ist falsch, wenn Sie Sonderzeichen wie // n wie // n verwenden, und seine Reihenfolge ist falsch. Dies wird durch MAP // Lösung verursacht. Verwenden Sie TREEMAP public static void LetterCount2 (String S) {S = S.Replaceall (" +", ""); TREEMAP <string, long> result = arrays.stream (ssplit ("")) .sorted () // .collect (collectors.groupingBy (function.Identity (), collectors.counting ()); .Collect (Collectors.GroupingBy (Funktion.Identity (), Treemap :: New, Collectors.counting ())); System.out.println (Ergebnis); } // Methode 3 Verwenden Sie Collections.Frequency // In der Tat sollen die Zeichenfolge in eine Sammlung umgewandelt werden, um jede Zeichenfolge zu speichern und jede Zeichenfolge mit der Sammlung public static void LetterCount3 (String S) {S = S.ReplaceAll (" +", ") zu vergleichen; List <String> list = arrays.aslist (S.Split ("")); Karte <String, Integer> map = new Treemap <String, Integer> (); für (string str: list) {map.put (str, collections.Frequency (list, str));} system.out.println (map); } // Methode 4 public static void LetterCount4 (String S) {S = S.ReplaceAll (" +", ""); String [] strs = ssplit (""); Karte <String, Integer> map = new Treemap <String, Integer> (); für (string str: strs) {map.put (str, StringCount (s, str));} System.out.println (map); } // Methode 5 public static void LetterCount5 (String S) {S = S.ReplaceAll (" +", ""); String [] strs = ssplit (""); Karte <String, Integer> map = new Treemap <String, Integer> (); für (string str: strs) {map.put (str, StringCount2 (s, str));} System.out.println (map); } // Verwenden Sie split public static int StringCount (String maxstr, String substr) {// Hinweis // 1. Wenn Sie beispielsweise nicht gefunden werden, wird die Zeichenfolge direkt zurückgegeben // 2. Qqqjava, qqqjava, dann gibt es keine anderen Charaktere, und es gibt keine Charaktere. automatisch gefüllt // 4. Für Sonderzeichen achten Sie bitte auf die Verwendung des Escape -Zeichens int count = (maxstr + "") .Split (substr) .Length - 1; // system.out.println ("/" " + minstr +"/"" + "Anzahl der String -Vorschläge:" + count); StringCount2 (String maxstr, String substr) {int count = 0; Matcher m = must..comPile (substr) .Matcher (maxstr); while (m.find ()) {count ++;} return count;}2. Statistik Die Anzahl der Wörter in einer Zeichenfolge (nur Englisch)
Dies ist tatsächlich das gleiche wie oben, und nur eine einfache Methode ist unten geschrieben
public static void WordStringCount (Zeichenfolge s) {// Der Anfang ist eine Zeichenfolge und nach dem Aufteilen wird sie zu einem String -Stream. Karte <String, Long> result = arrays.stream (sPLit ("// s+") .MAP (Word-> word.replaceAll ("[^a-za-z]", ")) .collect (collectors.groupingBy (Funktion.Identity (), collectors.count ()); System.out.println (Ergebnis); }3. Statistik Die Anzahl der Textwörter (nur Englisch)
// Suchen Sie die Anzahl der Wörter in einem Text. Stream.flatmap (str-> arrays.stream (str.split (" +")) .map (word-> word.replaceAll ("[^a-za-z]", ")") // leer.filter (Word-> word.Length ()> 0) .Collect (collectors.grouping.-)). System.out.println (Ergebnis); }4. Andere irrelevant
Wir wissen, dass variable Parameterlisten ohne Übergabeparameter übergeben werden können.
für
public void testName () {System.out.println ("a"); } public void testName (String ... s) {// keine Parameter übergeben werden s standardmäßig ein Objekt initialisieren. }Was soll ich beim Aufrufen von TestName () drucken? Es druckt a und stimmt automatisch mit der Methode überein, bei der der Parameter wirklich leer ist
Die obige Zusammenfassung mehrerer Methoden für Java8 zum Zählen der Anzahl der String -Buchstaben (empfohlen) ist der gesamte Inhalt, der vom Editor geteilt wird. Ich hoffe, es kann Ihnen eine Referenz geben und ich hoffe, Sie können Wulin.com mehr unterstützen.