Commit 7648ffec by Patryk Czarnik

Podział na słowa i liczenie pojedynczych słów

parent 4d1ccbf0
package p13_pliki.podstawy;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class Odczyt2_Scanner_Slowa {
public static void main(String[] args) {
System.out.println("Startujemy");
try(Scanner sc = new Scanner(new File("plik.txt"))) {
// czytanie słów w pętli
while(sc.hasNext()) {
String slowo = sc.next();
System.out.println("Następne słowo: " + slowo);
}
// można też pobrać strumień słów poprzez operację tokens()
// sc.tokens().forEach(slowo -> System.out.println("Następne słowo: " + slowo));
} catch (FileNotFoundException e) {
e.printStackTrace();
}
System.out.println("Gotowe");
}
}
package p13_pliki.tadeusz;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class PodzielNaSlowa {
public static void main(String[] args) {
int ile = 0;
try(Scanner scanner = new Scanner(new File("pan_tadeusz.txt"))) {
// aby dzielić tekst na słowa w inny sposób, można ustawić odpowiedni "delimiter" podając wyrażenie regularne
// scanner.useDelimiter("\\s+"); // domyślne ustawienie
// aby usunąć znaki interpunkcyjne:
// scanner.useDelimiter("[\\s,.;—!?()…«»]+"); // sposób 1: wypisać je wszystkie w ramach [grupy]
scanner.useDelimiter("[^\\p{L}\\d]+"); // sposób 2: używam "klas znaków" i mówię, że delimiterem jest ciąg takich znaków, które nie są ani literą, ani cyfrą
while(scanner.hasNext()) {
String slowo = scanner.next();
System.out.println("[" + slowo + "]");
ile++;
}
System.out.println("Liczba wszystkich słów: " + ile);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
}
package p13_pliki.tadeusz;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class PoliczJednoSlowo1 {
public static void main(String[] args) {
String szukaneSlowo = JOptionPane.showInputDialog("Podaj szukane słowo");
// Oblicz, ile razy w pliku Pan Tadeusz występuje to słowo
// W pierwszej wersji możesz po prostu policzyć w ilu liniach występuje ten tekst.
int ile = 0;
try(Scanner scanner = new Scanner(new File("pan_tadeusz.txt"))) {
while(scanner.hasNextLine()) {
String linia = scanner.nextLine();
if(linia.contains(szukaneSlowo)) {
ile++;
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
JOptionPane.showMessageDialog(null, "Słowo " + szukaneSlowo + " występuje " + ile + " razy.");
}
}
package p13_pliki.tadeusz;
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.JOptionPane;
public class PoliczJednoSlowo2 {
public static void main(String[] args) {
String szukaneSlowo = JOptionPane.showInputDialog("Podaj szukane słowo");
// Oblicz, ile razy w pliku Pan Tadeusz występuje to słowo
// W pierwszej wersji możesz po prostu policzyć w ilu liniach występuje ten tekst.
int ile = 0;
try(Scanner scanner = new Scanner(new File("pan_tadeusz.txt"))) {
while(scanner.hasNext()) {
String slowo = scanner.next();
if(slowo.equals(szukaneSlowo)) {
ile++;
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
JOptionPane.showMessageDialog(null, "Słowo " + szukaneSlowo + " występuje " + ile + " razy.");
}
}
package p13_pliki.tadeusz;
import java.io.FileNotFoundException;
import java.util.Scanner;
import javax.swing.JFileChooser;
import javax.swing.JOptionPane;
import javax.swing.filechooser.FileNameExtensionFilter;
public class PoliczJednoSlowo3 {
public static void main(String[] args) {
JFileChooser chooser = new JFileChooser(".");
chooser.setFileFilter(new FileNameExtensionFilter("Pliki tekstowe", "txt", "csv", "java", "py"));
int coSieStalo = chooser.showOpenDialog(null);
if(coSieStalo != JFileChooser.APPROVE_OPTION) {
return;
}
String szukaneSlowo = JOptionPane.showInputDialog("Podaj szukane słowo");
if(szukaneSlowo == null) {
return;
}
// Oblicz, ile razy w pliku Pan Tadeusz występuje to słowo
// W pierwszej wersji możesz po prostu policzyć w ilu liniach występuje ten tekst.
int ile = 0;
try(Scanner scanner = new Scanner(chooser.getSelectedFile())) {
scanner.useDelimiter("[^\\p{L}\\d]+");
while(scanner.hasNext()) {
String slowo = scanner.next();
if(slowo.equals(szukaneSlowo)) {
ile++;
}
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
JOptionPane.showMessageDialog(null, "Słowo " + szukaneSlowo + " występuje " + ile + " razy.");
}
}
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