У меня есть школьное задание, которое я написал как функциональную программу на Java, а не как объектно-ориентированное, но, посмотрев на требования задания, я теперь понимаю, что оно должно содержать различные методы.
Программа должна иметь возможность принимать любой текстовый файл с расширением (.txt) и анализировать его следующим образом:
Программа должна иметь возможность открывать любой текстовый файл, указанный пользователем, и анализировать частотусловесных галочек в тексте.Поскольку существует много разных видов словесных тиков (таких как «like», «uh», «um», «you know» и т. Д.), Программа должна спросить пользователя, какие тики нужно искать.Пользователь может ввести несколько тиков, разделенных запятыми - любые пробелы, введенные пользователем до или после каждого тика, должны игнорироваться.
Программа должна вывести:
общее количество тиков, найденных в тексте
- плотность тиков (доля всех слов в тексте, которые являются тиками)
- частота каждого из словесных тиков
- процент, который представляет каждый тик из всего общего числа тиков
Вот мой рабочий код:
import java.util.Scanner;
import java.io.File;
import java.io.FileNotFoundException;
public class AssignTextAnalysis {
public static void main(String[] args) throws FileNotFoundException {
double words = 0;
int tickstotal = 0;
System.out.println("Which file do you want to open?");
// Initiate scanner to read files
Scanner scnr = new Scanner(System.in);
String file = scnr.nextLine();
Scanner input = new Scanner(new File(".....Arbitrary path name....." + file));
System.out.println("Which words do you want to search for?");
String ticks = scnr.nextLine();
ticks = ticks.toLowerCase();
//So you can store the strings
String[] array = ticks.split(",");
int[] values = new int[array.length];
// Use a for loop to add all the words into Values
for (int z=0; z<array.length; z++){
values[z] = 0;
}
//Use while loop to found out the amount of occurrences of the words
while(input.hasNext()){
String next = input.next();
words++;
for ( int y=0; y<array.length; y++){
if ( next.toLowerCase().equals(array[y])){
values[y] +=1;
}
}
}
for ( Integer a : values){
tickstotal +=a;
}
System.out.println("Total number of tics :"+ticks);
double density = ((tickstotal/words)*100);
System.out.printf("Density of tics (in percent): %.2f \n", density);
System.out.println(".........Tick Breakdown.........");
for (int z = 0; z<array.length; z++){
System.out.println(array[z] + "\t/\t"+ values[z]+" occurences\t/\t" + (values[z]*100/tickstotal) + "% of all tics");
}
}
}
Поскольку я новичок в Java, я не уверен, как преобразовать его в ООП, и был бы признателен за любую возможную помощь.Спасибо всем!