es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo encontrar una palabra en una cadena en Java (palabra clave no incluida en otra palabra)

Tengo que buscar una palabra en una cadena de Java, pero no sé cómo resolver el siguiente problema:

Por ejemplo:
palabra clave: coche

texto: Quiero ocuparmarme del gato.

La palabra clave aparece en otra palabra, pero no quiero que se detecte. Solo quiero detectar si la palabra clave no es parte de otra palabra.

Por ejemplo:
palabra clave: coche

texto: Tengo un coche nuevo. (CORRECTO)

No puedo buscar ” coche ” (con espacios antes y después), porque puede aparecer como “coche.” en el texto (el final de la oración), por lo que aún no detectaría las situaciones correctas.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para resolver el problema de buscar una palabra en una cadena de Java ignorando sus ocurrencias como parte de otra palabra, una posible solución es utilizar expresiones regulares. Específicamente, podemos buscar la palabra clave rodeada por límites de palabra (representados por “\b” en la sintaxis de la expresión regular).

    Aquí hay un ejemplo de código Java que demuestra esta solución:

    String keyword = "coche";
    String text = "Quiero cuidar al gato.";
    
    // Crear el patrón de expresión regular
    String pattern = "\\b" + keyword + "\\b";
    
    // Utilizar un Matcher para encontrar la palabra clave en el texto
    Pattern p = Pattern.compile(pattern);
    Matcher m = p.matcher(text);
    
    if (m.find()) {
        System.out.println("Se encontró la palabra clave en el índice " + m.start());
    } else {
        System.out.println("La palabra clave no se encontró en el texto.");
    }
    

    En este código, primero definimos la palabra clave y el texto como cadenas. Luego, creamos un patrón de expresión regular que coincide con la palabra clave rodeada por límites de palabra (es decir, comienza y termina con un carácter que no es una palabra). A continuación, compilamos el patrón en un objeto Pattern y creamos un Matcher para buscar el patrón en el texto.

    Si el Matcher encuentra una coincidencia, significa que la palabra clave aparece como una palabra separada en el texto. Entonces podemos imprimir su índice (es decir, posición) de inicio en el texto. De lo contrario, si el Matcher no encuentra una coincidencia, significa que la palabra clave no aparece como una palabra separada en el texto. Imprimimos un mensaje que lo indica en su lugar.

    Al utilizar expresiones regulares para buscar la palabra clave con límites de palabra, podemos evitar detectar sus ocurrencias como parte de otras palabras. Esta solución se puede personalizar para diferentes tipos de requisitos de coincidencia de palabras, como la insensibilidad a mayúsculas y minúsculas, la coincidencia parcial o la búsqueda de múltiples palabras clave.

Comments are closed.