Digamos que tengo esta lista de palabras:cadenas eliminar de otra cadena en Java
String[] stopWords = new String[]{"i","a","and","about","an","are","as","at","be","by","com","for","from","how","in","is","it","not","of","on","or","that","the","this","to","was","what","when","where","who","will","with","the","www"};
que he texto
String text = "I would like to do a nice novel about nature AND people"
¿Hay un método que coincide con las palabras vacías y los elimina sin tener en cuenta el caso ; como este en algún lugar ?:
String noStopWordsText = remove(text, stopWords);
Resultado:
" would like do nice novel nature people"
Si usted sabe acerca de expresiones regulares que wold funcionan muy bien, pero yo realmente preferiría algo así como solución de los Comunes que es poco más orientada hacia el rendimiento.
Por cierto, en este momento estoy usando este método bienes comunes que le falta el manejo adecuado entre mayúsculas y minúsculas:
private static final String[] stopWords = new String[]{"i", "a", "and", "about", "an", "are", "as", "at", "be", "by", "com", "for", "from", "how", "in", "is", "it", "not", "of", "on", "or", "that", "the", "this", "to", "was", "what", "when", "where", "who", "will", "with", "the", "www", "I", "A", "AND", "ABOUT", "AN", "ARE", "AS", "AT", "BE", "BY", "COM", "FOR", "FROM", "HOW", "IN", "IS", "IT", "NOT", "OF", "ON", "OR", "THAT", "THE", "THIS", "TO", "WAS", "WHAT", "WHEN", "WHERE", "WHO", "WILL", "WITH", "THE", "WWW"};
private static final String[] blanksForStopWords = new String[]{"", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""};
noStopWordsText = StringUtils.replaceEach(text, stopWords, blanksForStopWords);
¿Tiene puntuación en sus cadenas? – Gabe
¿Tiene algunos números duros que apuntan a que una solución de expresiones regulares no es lo suficientemente eficiente, o es solo una optimización prematura? Es decir, definitivamente no es la solución más eficiente, pero a menos que esto sea todo lo que haga y necesite hacerlo 10 mil veces por segundo, apostaría a que no es un problema. – Theo