java arrays string list

Java, return if List contiene String



arraylist contains string (6)

En Java, quiero verificar si existe una cadena en una List<String> myList .

Algo como esto:

if(myList.contains("A")){ //true }else{ // false }

El problema es myList puede contener datos sin recortar:

{'' A'', ''B '', '' C ''}

Quiero que sea verdadero si mi artículo ''B'' está en la lista. ¿Cómo debería hacer esto? Me gustaría evitar una estructura de bucle.


Con Java 8 Stream API:

List<String> myList = Arrays.asList(" A", "B ", " C "); return myList.stream().anyMatch(str -> str.trim().equals("B"));


Es posible que pueda utilizar una biblioteca de coincidencia de cadenas aproximada para hacer esto, por ejemplo, SecondString , pero eso es casi con seguridad exagerado; solo use una de las respuestas for-loop proporcionadas en su lugar.


Necesita iterar su lista y llamar a String#trim para buscar:

String search = "A"; for(String str: myList) { if(str.trim().contains(search)) return true; } return false;

O si desea realizar ignorar la búsqueda de casos , utilice:

search = search.toLowerCase(); // outside loop // inside the loop if(str.trim().toLowerCase().contains(search))


Prueba esto:

for(String str: myList) { if(str.trim().equals("A")) return true; } return false;

Necesita usar str.equals o str.equalsIgnoreCase lugar de contains porque contains en string no funciona lo mismo que contains en List

List<String> s = Arrays.asList("BAB", "SAB", "DAS"); s.contains("A"); // false "BAB".contains("A"); // true


Puedes hacerlo en una sola línea usando regex:

if (myList.toString().matches(".*//bA//b.*"))

Este código debería funcionar bastante bien.

Por cierto, podrías construir la expresión regular de una variable, como esta:

.matches("//[.*//b" + word + "//b.*]")

Agregué [ y ] a cada extremo para evitar una coincidencia falsa positiva cuando el término de búsqueda contiene un corchete de abrir / cerrar al principio / final.


String search = "A"; for(String s : myList) if(s.contains(search)) return true; return false;

Esto iterará sobre cada cadena en la lista, y verifica si contiene la cadena que está buscando. Si solo quiere espacios para atrapar, puede hacer esto:

String search = "A"; for(String s : myList) if(s.replaceAll(" ","").contains(search)) return true; return false;

que primero reemplazará espacios con cadenas vacías antes de buscar. Además, si solo quieres recortar la cadena primero, puedes hacer:

String search = "A"; for(String s : myList) if(s.trim().contains(search)) return true; return false;