Tengo tres listas, que se han fusionado en una sola lista
static List allLists = Stream.of(list1, list2, list3)
.flatMap(Collection::stream)
.collect(Collectors.toList());
Tengo la entrada del usuario y sin espacios en blanco
String = "HelloIwanttobookanonlineseminaratyourcompany"
Todas las palabras que la entrada del usuario String
ya son allLists
. Quiero iterare sobre allLists
e insertar espacios en blanco en la cadena, con cada palabra que se encuentra. El resultado debe ser:
String = "Hello I want to book an online seminar at your company"
¿Hay una manera fácil i miss solución?
Utilice una sola línea que emplea un vistazo (masiva) detrás construido a partir allLists
de espacios de inserción antes de cada palabra:
str = str.replaceAll("(?<=" + String.join("|", allLists) + ")", " ");
Tenga en cuenta que el orden de las palabras en allLists
que es importante; si desea que las palabras más largas que tienen preferencia, la lista de ellos primero (recomendado). Por ejemplo, si ambos "libro" y "reserva" están en su lista, la reserva antes de poner el libro, de lo contrario obtendrá "libro ing" en su resultado.