¿Cómo comprobar arraylist contiene esta palabra en particular en android?
Tengo ArrayList<String>
en que he añadido 3-4 nombres de sitios web. Al igual que, http://www.google.com , https://www.stackoverflow.com , etc Ahora en mi aplicación si escribo simplemente "google", entonces quiero comparar esa palabra "google" con el ArrayList<String>
.
Estoy atascado aquí. ¿Puede alguien decirme cómo puedo comparar la cadena con el objeto matriz?
- Android: Snackbar da ArrayIndexOutOfBoundsException
- ArrayList <Integer> con el método get / remove
- ¿Cuál es la mejor manera de guardar el contenido de una ArrayList?
- Cómo eliminar el valor duplicado de arraylist en Android
- Cómo mover el elemento específico en la lista de arreglos al primer elemento
Gracias por adelantado.
- Cómo llamar a strings.xml en arraylist
- ¿Cómo poner <Spanned> en list.setAdapter?
- ¿Cómo puedo convertir String a ArrayList <String>
- Manera sana de ir de ArrayList <Long> a través de una intención
- Java Arraylist eliminar elementos múltiples por índice
- Cómo ordenar varios ArrayLists todos juntos en java
- Android: Constructor es ambiguo cuando paso Null, pero no cuando paso una variable asignada a Null
- Convertir valor Arraylist <Object> en byte
Para ello, debe anular la implementación de contains()
. Les estoy dando un ejemplo sencillo.
Clase ArrayList personalizada
public class MyArrayList extends ArrayList<String> { private static final long serialVersionUID = 2178228925760279677L; @Override public boolean contains(Object o) { return indexOf(o) >= 0; } @Override public int indexOf(Object o) { int size = this.size(); if (o == null) { for (int i = 0; i < size ; i++) { if (this.get(i) == null) { return i; } } } else { for (int i = 0; i < size ; i++) { if (this.get(i).contains(String.valueOf(o))) { return i; } } } return -1; } }
Cómo utilizar
MyArrayList arrayList = new MyArrayList(); arrayList.add("http://www.google.com"); arrayList.add("https://www.stackoverflow.com"); arrayList.add("http://pankajchunchun.wordpress.com"); if (arrayList.contains("google")) { System.out.println("ArrayList Contains google word"); } if (arrayList.contains("igoogle")) { System.out.println("ArrayList Contains igoogle word"); } else { System.out.println("ArrayList does not Contains igoogle word"); }
A continuación se muestra el ejemplo de código anterior
ArrayList Contains google word ArrayList does not Contains igoogle word
Consulte el código fuente de ArrayList para más implementación personalizada.
ArrayList.contains()
prueba el String a través de iguales. De la documentación:
Public boolean contains (Object o) Devuelve true si esta lista contiene el elemento especificado. De forma más formal, devuelve true si y sólo si esta lista contiene al menos un elemento e tal que (o == null? E == null: o.equals (e)).
ejemplo:
boolean contains = yourArrayListInstance.contains(yourString);
Editar. Si desea comprobar si hay subcadena tiene que hacer un bucle en el contenido de ArrayList y llamar a String.contains
Utilice una función auxiliar como esta
public static boolean containsSubString(ArrayList<String> stringArray, String substring){ for (String string : stringArray){ if (string.contains(substring)) return true; } return false; }
Puede iterar a través de su ArrayList<String>
como
public String getWebsiteName(String toMatchString) { ArrayList<String> yourArrayList = new ArrayList<String>(); for (String webSiteName : yourArrayList) { if (webSiteName.contains(toMatchString)) return webSiteName; } return null; }
Y obtener la String
correspondiente
- Evitar que la dependencia de Gradle para la biblioteca de soporte sea reemplazada por una versión más reciente
- ¿Puede Android Dibujos definidos en XML contienen una ruta de acceso?