import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.ArrayList;
import java.util.Scanner;
class Main {
public static ArrayList<String> cadenas = new ArrayList<String>();
public static ArrayList<String> palabras = new ArrayList<String>();
public static ArrayList<String> encontradas = new ArrayList<String>();
public static Scanner sc = new Scanner(System.in);
public static int nencontradas = 0;
public static void main(String[] args) { System.out.println("Empieza a ingresar las cadenas en donde haras la busqueda\n"); gen_elems("cadena"); System.out.println("Empieza a ingresar las palabras a buscar\n"); gen_elems("palabra"); if (busqueda()) { System.out.println("RESULTADOS:\nSe marcan las coincidencias entre << >>"); System.out.format("Coincidencias encontradas: %d\n", nencontradas); System.out.format("Cadenas a mostrar: %d\n\n", encontradas.size()); for (String encontrada: encontradas) { System.out.println(encontrada);
}
} else { System.out.println("NO SE ENCONTRARON COINCIDENCIAS EN LA BUSQUEDA"); }
}
public static void gen_elems(String tipo) { String elem = "";
String continuar = "";
int i = 1;
while (true) { System.out.format("Ingresa la %s %d :\n", tipo, i); elem = sc.nextLine();
if ( ! elem.trim().isEmpty()) { if (tipo == "cadena") { cadenas.add(elem.trim());
} else { palabras.add(elem.trim());
}
System.out.format("¿Deseas ingresar otra %s? (S o N)\n", tipo); continuar = sc.nextLine();
if (continuar.toUpperCase().equals("N")) { System.out.println(""); break;
}
} else { System.out.format("La %s no puede estar vacia, intentalo de nuevo.\n", tipo); i--;
}
i++;
}
}
public static boolean busqueda() { String patron = String.join("|", palabras); for (String cadena: cadenas) { Pattern pattern = Pattern.compile("\\b(" + patron + ")\\b", Pattern.CASE_INSENSITIVE); Matcher matcher = pattern.matcher(cadena);
String cadena_modif = "";
while (matcher.find()) { nencontradas++;
cadena_modif = cadena.replaceAll("\\b(?i)(" + matcher.group(1) + ")\\b", "<<$1>>"); }
if( ! cadena_modif.isEmpty()) encontradas.add(cadena_modif);
}
if (encontradas.size() > 0) return true;
return false;
}
}
Comentarios sobre la versión: 1.0 (1)