codestory

Die Anleitung zu Java StringReader

View more Tutorials:

1- StringReader

Die Klasse StringReader wird benutzt um ein String nach dem Stil von "character input stream" zu lesen.
Im Grunde ist StringReader die Unterklasse von Reader. Es hat keine Methode außer der vom Vaterklasse geerbten Methoden. Deshalb können Sie den Artikel über Reader um die Methode besser zu lernen.
StringReader constructor
public StringReader(String s)

2- Examples

Z.B: Lesen Sie einen Text und listen Sie die im Text enthaltenen Wörter und die Anzahl des Auftreten jedes Wortes auf.
  • TODO Link?
StringReaderEx2.java
package org.o7planning.stringreader.ex;
 
import java.io.IOException;
import java.io.Reader;
import java.io.StreamTokenizer;
import java.io.StringReader;
import java.util.HashMap;
import java.util.Map;

public class StringReaderEx2 {

    public static void main(String[] args) throws IOException {
        String s = "Apple Apricots Apricots Blackberries Apple";
        
        Reader reader = new StringReader(s);
        StreamTokenizer tokenizer = new StreamTokenizer(reader); // StreamTokenizer(Reader)
        
        // <String word, int count>
        Map<String, Integer> wordsMap = new HashMap<>();
        
        // Read and count the frequency for every word.
        while (tokenizer.nextToken() != StreamTokenizer.TT_EOF) {
            if (tokenizer.ttype == StreamTokenizer.TT_WORD) {
                int count;
                 
                if(wordsMap.containsKey(tokenizer.sval)) {
                    count = wordsMap.get(tokenizer.sval).intValue();
                    count++;
                }
                else {
                    count = 1;
                }
                wordsMap.put(tokenizer.sval, count);
            }
        }
        
        wordsMap.forEach((word, count) -> {
            System.out.println(word + " : " + count);
        });
    }
}
Output:
Apple : 2
Apricots : 2
Blackberries : 1
Z.B: Lesen Sie einen Text mit vielen Zeilen, drucken Sie Zeilen, die mit "B" enden und nicht mit "#" beginnen (Kommentarzeile).
StringReaderEx3.java
package org.o7planning.stringreader.ex;

import java.io.BufferedReader;
import java.io.Reader;
import java.io.StringReader;

public class StringReaderEx3 {

    public static void main(String[] args) {
        String students = //
                "# Students:\n" //
                        + "John P\n" //
                        + "Sarah M\n" //
                        + "# Sarah B\n" //
                        + "Charles B\n" //
                        + "Mary T\n" //
                        + "Sophia B\n";

        Reader reader = new StringReader(students);

        BufferedReader br = new BufferedReader(reader);

        br.lines() // return java.util.stream.Stream
                .filter(s -> !s.trim().startsWith("#")) // Line not start with #
                .filter(s -> s.endsWith("B")) // Line ends with B
                .forEach(System.out::println);

    }
}
Output:
Charles B
Sophia B

View more Tutorials:

Vielleicht bist du interessiert

Das sind die Online-Courses außer der Website o7planning, die wir empfehlen. Sie können umsonst sein oder Discount haben.