Commit f631e7d3 by Patryk Czarnik

liczenie słów - wersje z pętlami

parent 8ebc5ec0
......@@ -27,7 +27,6 @@ public class PoliczWszystkieSlowa_v1 {
}
// System.out.println(slownik);
for(Map.Entry<String, Integer> entry : slownik.entrySet()) {
System.out.println(entry.getKey() + " → " + entry.getValue());
}
......
package domowe.r4.pan_tadeusz;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class PoliczWszystkieSlowa_v2 {
public static void main(String[] args) {
Map<String, Integer> slownik = new TreeMap<>();
try(Scanner scanner = new Scanner(new File("pliki/pan_tadeusz.txt"))) {
scanner.useDelimiter("[^\\p{L}\\d]+");
while(scanner.hasNext()) {
String slowo = scanner.next().toLowerCase();
slownik.put(slowo, slownik.getOrDefault(slowo, 0) + 1);
}
} catch(FileNotFoundException e) {
e.printStackTrace();
}
// Sortujemy wyniki wg liczby wystąpień:
// Najpierw tworzę listę wpisów, a nastepnie tę listę sortuję wg wartości
List<Map.Entry<String, Integer>> lista = new ArrayList<>(slownik.entrySet());
lista.sort(Map.Entry.comparingByValue());
for(Map.Entry<String, Integer> entry : lista) {
System.out.println(entry.getKey() + " → " + entry.getValue());
}
}
}
package domowe.r4.pan_tadeusz;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;
public class PoliczWszystkieSlowa_v3 {
// W tej wersji stosuję nowe (Java 8) "funkcyjne" operacje:
// - forEachRemaining, która zastpuje nam pętlę while i w inny sposób pozwala przejść przez słowa
// - merge, która aktualizuje zawartość słownika
// W tej wersji nie są jeszcze używane strumienie.
public static void main(String[] args) {
Map<String, Integer> slownik = new TreeMap<>();
try(Scanner scanner = new Scanner(new File("pliki/pan_tadeusz.txt"))) {
scanner.useDelimiter("[^\\p{L}\\d]+");
scanner.forEachRemaining(slowo -> slownik.merge(slowo, 1, Integer::sum));
} catch(FileNotFoundException e) {
e.printStackTrace();
}
for(Map.Entry<String, Integer> entry : slownik.entrySet()) {
System.out.println(entry.getKey() + " → " + entry.getValue());
}
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment