Руководство Java StringReader
View more Tutorials:
Класс StringReader используется для чтения String в стиле символьного входного потока (character input stream).

- TODO Link!
- TODO Link!
- TODO Link!
- TODO Link!
По сути, StringReader - это подкласс Reader. Он имеет только методы, унаследованные от его родительского класса. Таким образом, вы можете прочитать статью о Reader, чтобы узнать больше об этих методах.
StringReader constructor
public StringReader(String s)
Например: Прочитайте текст, перечисляя слова, которые появляются в тексте, и количество вхождений каждого слова.
- 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
Например: Прочитайте текст с несколькими строками, распечатайте строки, которые заканчиваются на "B", и не начинаются на "#" (Строка комментария).
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