Sie sind auf Seite 1von 5

LA PENITENCIA DE LA DUDA

Gameciel, el unicornio, el un buen tipo pero no muy afortunado en el amor(pobre


wey…) pero a pesar de eso siempre afronta la vida con una buena actitud, para su
suerte(o mala jaja) uno de sus amigos, Heziel, le recomendó que si tanto quería dejar
de estar solo solin solito, use una aplicación interesante que descubrió. La app se llama
CLOWER(algo así como Tinder pero para Unicornios XD) una ap que sirve para conocer
(o intentar conocer) a diferentes tipos de unicornios, el problema aquí es que el pobre
Gameciel tiene 2 exigencias (aparte de solitario, exigente mas, se raya).
a) Que no le interesa leer o evaluar mensajes que sean demasiado largos, el te
dirá cuál es el tamaño máximo de un mensaje que puedes evaluar
b) Como es súper sentimental, tiende a recordar demasiado a su ultima pareja, asi
que no quiere leer mensajes que contengan más de “n” veces una letra en
particular (La inicial de su ex XD).
c) Un mensaje está compuesto por Remitente y Contenido, Gameciel es un
soñador y siempre a querido conocer una unicornio que se llame “Erszebeth” y
si esto pasara en los mensajes, no evalúa nada y directamente acepta el
mensaje.
d) Como la vida no es color de rosas es difícil que eso pase, XD asi que como
mínimo Gameciel quiere que la inicial y la letra final del nombre de la persona
que manda el mensaje sean “’e’ o ‘m’”, “h” respectivamente

Dados esos pequeños detalles, quiero que ayudes a mi amigo a poder filtrar los
mensajes que le llegan si?
public class Mensaje{
private String remitente;
private String contenido;
public Mensaje(String name, String cont){
remitente = name;
contenido = cont;
}
public String getRemitente(){
return remitente;
}
public String getContenido(){
return contenido;
}
}
-------------------------------------------------------------------------------------------------------------
public class VerificadorMensaje{
Mensaje mensaje;
public VerificadorMensaje(Mensaje mensaje){
this.mensaje = mensaje;
}
public boolean tieneNombreIdeal(){
String name = mensaje.getRemitente();

return name.equals("Erszebeth");// esto te dará true si son iguales, false si son


diferentes
}
public boolean cumpleTamaño(int tamPermitido){
String cont = mensaje.getContenido();
int tamMensaje = cont.length();
return tamMensaje<tamPermitido;
}
public boolean cumpleVocales(){
boolean res=false;
String name = mensaje.getRemitente();
char inicial = name.charAt(0);//rescatamos la letra en posicion 0 del nombre
char fin = name.charAt(name.length()-1);// rescatemos la ultima letra del nombre,
no olvides que la posicion maxima es longitud-1
if(inicial == 'E' || inicial=='M'){
if(fin == 'h'){
res = true;
}
}
return res;
}
/*
* Este Es el Metodo que mas quiero que analizen y estudien si? :3
*/
public boolean noSeRepitenLetras(char letra, int maximo){
boolean res = false;
String contenido = mensaje.getContenido();
int contador=0;
for(int i=0; i<contenido.length(); i++){
char actual = contenido.charAt(i);
if(actual==letra){
contador++;
}
}
if(contador<maximo){
res = true;
}
return res;
}
}
----------------------------------------------------------------------------------------------------------------
import java.util.ArrayList;
public class App{
private ArrayList<Mensaje> mensajes;//Lista que va guardar todos los objetos de
tipo mensaje que vayamos a crear
public App(){
mensajes = new ArrayList<Mensaje>();
}

public void agregarMensaje(Mensaje men){


mensajes.add(men); // funcion add, sirve para agregar contenido al final de la lista
}

public Mensaje getMensaje(int pos){


return mensajes.get(pos); // devuelve el elemento, dada una posicion
}

public void eliminarMensaje(int pos){


mensajes.remove(pos); // elimina un elemento, dada una posicion
}
/*
* Este es el METODO interesante de esta clase, los otros solo son mas para que no
se olviden que cosas pueden hacer con un ArraList
*/
public ArrayList<Mensaje> filtrarMensajes(char inicial, int veces, int longitud){
ArrayList<Mensaje> res = new ArrayList<Mensaje>();
VerificadorMensaje veri;
for(int i=0; i<mensajes.size(); i++){
Mensaje actual = mensajes.get(i);//Rescatas el mensaje actual, i define en que
posicion de la lista estas
veri = new VerificadorMensaje(actual);
if(veri.tieneNombreIdeal() || (veri.cumpleTamaño(longitud) &&
veri.cumpleVocales() && veri.noSeRepitenLetras(inicial,veces))){
res.add(actual);//agregas ese mensaje a tu lista respuesta;
}
}
return res;
}
}

Das könnte Ihnen auch gefallen