lista integers example java regex search arraylist

java - integers - Cómo buscar una cadena en una lista de arrays



lista de int java (10)

Como su lista no parece estar ordenada, debe iterar sobre sus elementos. Aplique startsWith() o contains() a cada elemento y almacene las coincidencias en una lista auxiliar. Devuelve la lista auxiliar cuando haya terminado.

Quiero buscar una cadena en una lista de arrays. My ArrayList contiene:

ArrayList <String> list = new ArrayList(); list.add("behold"); list.add("bend"); list.add("bet"); list.add("bear"); list.add("beat"); list.add("become"); list.add("begin");

Ahora quiero buscar "bea" y debería devolver una lista que contenga "bear" y "beat" . ¿Cómo puedo implementarlo?


El mejor pedido que he visto:

// SearchList is your List // TEXT is your Search Text // SubList is your result ArrayList<String> TempList = new ArrayList<String>( (SearchList)); int temp = 0; int num = 0; ArrayList<String> SubList = new ArrayList<String>(); while (temp > -1) { temp = TempList.indexOf(new Object() { @Override public boolean equals(Object obj) { return obj.toString().startsWith(TEXT); } }); if (temp > -1) { SubList.add(SearchList.get(temp + num++)); TempList.remove(temp); } }


Hoy en día, Java 8 permite una solución funcional de una línea que es más limpia, más rápida y mucho más simple que la solución aceptada:

List<String> list = new ArrayList<>(); list.add("behold"); list.add("bend"); list.add("bet"); list.add("bear"); list.add("beat"); list.add("become"); list.add("begin"); List<String> matches = list.stream().filter(it -> it.contains("bea")).collect(Collectors.toList()); System.out.println(matches); // [bear, beat]


Mejor forma es usar el método matches () en cada elemento String de la matriz. Esto te ayudará a buscar cualquier patrón a través de expresiones regulares.


Pasa por tu lista y haz un "contiene" o "comienza".

ArrayList<String> resList = new ArrayList<String>(); String searchString = "bea"; for (String curVal : list){ if (curVal.contains(searchString)){ resList.add(curVal); } }

Puedes envolver eso en un método. El contiene verifica si está en la lista. También podrías ir por startwith.


Primero debe copiar, desde AdapterArrayList a tempsearchnewArrayList (Agregar elementos ListView en tempsearchnewArrayList), porque solo entonces puede comparar si el texto de búsqueda aparece en el Arraylist o no.

Después de crear una lista de arrays temporal, agregue el código siguiente.

searchEditTextBox.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { } @Override public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { String txt = charSequence.toString().trim(); int txtlength = txt.length(); if (txtlength > 0) { AdapterArrayList = new ArrayList<HashMap<String, String>>(); for (int j = 0; j< tempsearchnewArrayList.size(); j++) { if (tempsearchnewArrayList.get(j).get("type").toLowerCase().contains(txt)) { AdapterArrayList.add(tempsearchnewArrayList.get(j)); } } } else { AdapterArrayList = new ArrayList<HashMap<String, String>>(); AdapterArrayList.addAll(tempsearchnewArrayList); } adapter1.notifyDataSetChanged(); if (AdapterArrayList.size() > 0) { mainactivitylistview.setAdapter(adapter1); } else { mainactivitylistview.setAdapter(null); } } @Override public void afterTextChanged(Editable editable) { } });


Puede ser más fácil usando java.util.HashSet. Por ejemplo:

List <String> list = new ArrayList<String>(); list.add("behold"); list.add("bend"); list.add("bet"); //Load the list into a hashSet Set<String> set = new HashSet<String>(list); if (set.contains("bend")) { System.out.println("String found!"); }


List <String> list = new ArrayList(); list.add("behold"); list.add("bend"); list.add("bet"); list.add("bear"); list.add("beat"); list.add("become"); list.add("begin"); List <String> listClone = new ArrayList<String>(); for (String string : list) { if(string.matches("(?i)(bea).*")){ listClone.add(string); } } System.out.println(listClone);


List <String> list = new ArrayList(); list.add("behold"); list.add("bend"); list.add("bet"); list.add("bear"); list.add("beat"); list.add("become"); list.add("begin"); List <String> listClone = new ArrayList<String>(); Pattern pattern = Pattern.compile("bea",Pattern.CASE_INSENSITIVE); //incase u r not concerned about upper/lower case for (String string : list) { if(pattern.matcher(string).find()) { listClone.add(string); continue; } } System.out.println(listClone);


import java.util.*; class ArrayLst { public static void main(String args[]) { ArrayList<String> ar = new ArrayList<String>(); ar.add("pulak"); ar.add("sangeeta"); ar.add("sumit"); System.out.println("Enter the name:"); Scanner scan=new Scanner(System.in); String st=scan.nextLine(); for(String lst: ar) { if(st.contains(lst)) { System.out.println(st+"is here!"); break; } else { System.out.println("OOps search can''t find!"); break; } } } }