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.

¿Preservar los espacios en blanco al usar .split?

Estoy intentando dividir una cadena y almacenarla en un arreglo, de manera que cada palabra se almacene en un índice separado. También quiero que los espacios en blanco y cualquier signo de puntuación se almacenen.

por ejemplo: “¡Hola mundo!” se almacenaría como:

array[0]: “¡Hola”
array[1]: ” ”
array[2]: “mundo!”

Actualmente estoy utilizando .split pero no puedo descifrar cómo dividir la cadena de manera que se divida al final de la palabra y también almacene el espacio en blanco.

strArray = str.split(” “);

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para dividir la cadena y incluir los espacios en blanco y la puntuación, se puede utilizar una expresión regular como parámetro para el método split. El siguiente código dividirá la cadena al final de cada palabra e incluirá cualquier espacio en blanco o puntuación:

    String str = "¡Hola mundo!";
    String[] strArray = str.split("(?<=\\b|\\W)");
    

    La expresión regular (?<=\b|\W) es una búsqueda hacia atrás positiva que coincide con una posición que está inmediatamente precedida por un límite de palabra \b o un carácter que no es una palabra \W. Esto significa que el método split dividirá la cadena al final de cada palabra o carácter que no sea una palabra, e incluirá el espacio en blanco o la puntuación en el array resultante.

    El array resultante será:

    strArray[0]: "¡Hola"
    strArray[1]: " "
    strArray[2]: "mundo!"
    

Comments are closed.