Zdravím,
na netu jsem našel tento kód a chtěl bych si ho vyzkoušet, ale bohužel mi nejde vložit textový soubor k analýze, mohl by mi někdo poradit jak na to? Moc děkuji, za rady.
Přeji hezký den Petr
package analyzetext;
import java.nio.charset.Charset;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;
/**
*
* @author On
*/
public class AnalyzeText {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in, "UTF-8");
String adresaSouboru;
System.out.println("Zadej cestu souboru k analýze!");
adresaSouboru = sc.nextLine();
try{
List<String> textZeSouboru = Files.readAllLines(Paths.get(adresaSouboru), Charset.forName("UTF-8"));
System.out.println("Text jak byl zadán:");
System.out.println("=========================================");
textZeSouboru.removeAll(Collections.singleton(null));
for(String jedenRadek:textZeSouboru){
System.out.println(jedenRadek);
}
System.out.println("-----------------------------------------");
String textSeZavorkami = textZeSouboru.toString();
String textBezZavorek=textZeSouboru.toString().substring(1,textSeZavorkami.length()-1);
Analyza(textBezZavorek,textZeSouboru.size());
}
catch(Exception e){
System.out.println("Chyba při čtení ze souboru \n"+e.toString());
}
}
public static void Analyza(String celyText, int pocetOdstavcu){
String cislice="0123456789";
String samohlasky = "aeiouyáéěíóúůý";
String souhlasky = "bcčdďfghjklmnpqrřsštťvwxzž";
String[] slova = celyText.split(" ");
String[] vety = celyText.split("[.!?]");
int pocetSamohlasek = 0;
int pocetSouhlasek = 0;
int pocetCislic = 0;
int pocetSlabik = 0;
int pocetSlov = slova.length;
int pocetVet = vety.length;
int kolikataSouhlaska = 0;
Boolean spravnaSouhlaska = false;
celyText=celyText.toLowerCase();
for (char aktualniZnak : celyText.toCharArray())
{
if (samohlasky.contains(String.valueOf(aktualniZnak))){
pocetSamohlasek++;
}
else if (souhlasky.contains(String.valueOf(aktualniZnak))){
pocetSouhlasek++;
}
else if (cislice.contains(String.valueOf(aktualniZnak))){
pocetCislic++;
}
}
for(String slovo:slova){
for (char aktualniZnak : slovo.toCharArray())
{
if (samohlasky.contains(String.valueOf(aktualniZnak))){
pocetSlabik++;
}
if (souhlasky.contains(String.valueOf(aktualniZnak))){
kolikataSouhlaska++;
if ("r".contains(String.valueOf(aktualniZnak))||"l".contains(String.valueOf(aktualniZnak))){
spravnaSouhlaska=true;
}
}
else{
kolikataSouhlaska=0;
spravnaSouhlaska=false;
}
if(kolikataSouhlaska>=3&&spravnaSouhlaska){
kolikataSouhlaska = 0;
spravnaSouhlaska = false;
pocetSlabik++;
}
}
int indexOU = 0;
while( ( indexOU = slovo.indexOf("ou", indexOU+1) ) >= 0 ) {
if(indexOU!=2)pocetSlabik--;
}
int indexAU = 0;
while( ( indexAU = slovo.indexOf("au", indexAU+1) ) >= 0 ) {
if(indexAU!=2)pocetSlabik--;
}
if (slovo.substring(slovo.length()-1,slovo.length()).equals("l")&&souhlasky.contains(String.valueOf(slovo.substring(slovo.length()-2,slovo.length()-1)))){
pocetSlabik++;
}
}
System.out.println("Text: (zfromátovaný do jednoho řádku)");
System.out.println("=========================================");
System.out.println(celyText);
System.out.println("-----------------------------------------");
System.out.println("Počet:");
System.out.println("=========================================");
System.out.printf("Samohlásek: %d\n", pocetSamohlasek);
System.out.printf("Souhlásek: %d\n", pocetSouhlasek);
System.out.printf("Číslic: %d\n", pocetCislic);
System.out.printf("Ostaních znaků: %d\n", celyText.length()+1 - (pocetSamohlasek + pocetSouhlasek + pocetCislic)-2*pocetOdstavcu);
System.out.printf("Všech znaků: %d\n", celyText.length()+1-2*pocetOdstavcu);
System.out.printf("Slabik: %d\n", pocetSlabik);
System.out.printf("Slov: %d\n", pocetSlov);
System.out.printf("Vět: %d\n", pocetVet);
System.out.printf("Odstavců: %d\n", pocetOdstavcu);
System.out.println("-----------------------------------------");
System.out.println("Průměrný počet:");
System.out.println("=========================================");
if(pocetSlov!=0){
System.out.printf("Slabik ve slově: %f\n", (float)pocetSlabik/pocetSlov);
}
else{System.out.printf("Slabik ve slově: %d\n", 0); }
if(pocetVet!=0){
System.out.printf("Slov ve větě: %f\n", (float)pocetSlov/pocetVet);
}
else{System.out.printf("Slov ve větě: %d\n", 0); }
if(pocetOdstavcu!=0){
System.out.printf("Vět v odstavci: %f\n", (float)pocetVet/pocetOdstavcu);
}
else{System.out.printf("Vět v odstavci: %d\n", 0); }
System.out.println("-----------------------------------------");
}
}