Código de Java - Buscador simple de palabras en cadenas

Imágen de perfil
Val: 96
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

Buscador simple de palabras en cadenasgráfica de visualizaciones


Java

Publicado el 11 de Marzo del 2017 por Kip (28 códigos)
8.309 visualizaciones desde el 11 de Marzo del 2017
Un simple código permite ingresar las cadenas que desees y la palabra o palabras a buscarse en las cadenas anteriormente ingresadas, haciendo uso de expresiones regulares.

Las coincidencias se marcaran entre << >>.

Por defecto la búsqueda es insensible a mayúsculas o minúsculas.

1.0
estrellaestrellaestrellaestrellaestrella(1)

Actualizado el 1 de Mayo del 2017 (Publicado el 11 de Marzo del 2017)gráfica de visualizaciones de la versión: 1.0
8.310 visualizaciones desde el 11 de Marzo del 2017
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
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)

Imágen de perfil
12 de Marzo del 2017
estrellaestrellaestrellaestrellaestrella
No ha dejado ningún comentario
Responder

Comentar la versión: 1.0

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s3916