-
Notifications
You must be signed in to change notification settings - Fork 0
/
AD1_POO_2022_1.java
157 lines (104 loc) · 3.46 KB
/
AD1_POO_2022_1.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
import java.util.Random;
class Frase {
private String linha;
private String [] palavras;
Frase(String linha){
this.linha = linha;
}
public String getLinha() {
return linha;
}
public void setLinha(String linha) {
this.linha = linha;
}
public String [] listaPalavras(){
palavras = new String[getLinha().split(" ").length];
for(int i =0; i < palavras.length; i++) {
palavras[i] = getLinha().split(" ")[i];
}
return palavras;
}
public String adicionaFrase(String linha) {
setLinha(getLinha() + " " + linha);
return getLinha();
}
public Frase adicionaFrase(Frase fr) {
setLinha(getLinha() + fr.getLinha());
return this;
}
public String toString() {
return getLinha();
}
}
class Texto extends Frase {
private Frase [] frases;
private int tamMaxFrases;
private int qtdFrases;
private String palProcurada;
private String palSubstituta;
private double palavrasPorMin = 200;
Texto(String linha) {
super(linha);
tamMaxFrases = 1000;
qtdFrases = 0;
frases = new Frase[tamMaxFrases];
}
public void substitui(String palProcurada, String palSubstituta) {
String novaLinha = "";
for(String s: super.listaPalavras()) {
if(s.contains(palProcurada)) {
s = s.replaceAll("\\b" + palProcurada + "\\b", palSubstituta);
}
novaLinha += s + " ";
}
super.setLinha(novaLinha);
}
public int getQuantidadePalavras() {
return super.listaPalavras().length;
}
public int getTempoEstimadoLeitura() {
int result = (int) Math.ceil(getQuantidadePalavras() / palavrasPorMin);
return result;
}
public Frase [] separaFrases(){
if(qtdFrases < tamMaxFrases) {
for(int i=0; i < super.getLinha().split("\\.").length; i++) {
frases[qtdFrases] = new Frase(super.getLinha().split("\\.")[i]);
qtdFrases++;
}
}
return frases;
}
public String getFrasesCom(String palProcurada) {
String novaLinha = "";
for(Frase fr: separaFrases()) {
if(fr != null) {
if(fr.toString().contains(palProcurada)){
novaLinha += fr + ".";
}
}
}
return novaLinha;
}
public String getFraseAleatoria() {
String fraseAleatoria = "";
int numAleatorio = new Random().nextInt(qtdFrases);
fraseAleatoria += separaFrases()[numAleatorio] + ".";
return fraseAleatoria;
}
public String toString() {
return "\n" + super.getLinha();
}
}
public class AD1_POO_2022_1 {
public static void main(String[] args) {
Texto teste = new Texto("Diz a sabedoria popular que um homem só tem uma vida completa quando planta uma árvore, escreve um livro e tem um filho. Ao meu ver, não se diz isso pensando de forma literal, mas sim na importância abstrata destes feitos. Ao plantar uma árvore, demonstramos preocupação com o ambiente onde vivemos. Ao ter um filho, amamos ao próximo incondicionalmente. Ao escrever um livro, desejamos compartilhar e \"eternizar\" o conhecimento adquirido.");
teste.substitui("popular", "do povo");
teste.adicionaFrase(new Frase("Claramente conseguimos realizar estes feitos abstratos de diferentes maneiras.")).adicionaFrase("O importante é ter consciência da importância destes.");
System.out.println("Qtd: " + teste.getQuantidadePalavras());
System.out.println("Tempo: " + teste.getTempoEstimadoLeitura() + " minuto(s)");
System.out.println("Texto recuperado: " + teste);
System.out.println("Frases com:\n" + teste.getFrasesCom("livro"));
System.out.println("Aleatória:\n" + teste.getFraseAleatoria());
}
}