Ho bisogno di implementare un modo per cercare la sottostringa (aghi) in un elenco di stringhe (pagliaio) utilizzando Java.qual è il metodo di ricerca della sottostringa più veloce in Java
In particolare, la mia app ha un elenco di profili utente. Se scrivo alcune lettere, ad esempio "Ja", quindi esegui una ricerca, tutti gli utenti il cui nome contiene "ja" devono essere visualizzati. Ad esempio, il risultato potrebbe essere "Jack", "Jackson", "Jason", "Dijafu".
In Java, come noto, esistono 3 metodi build-in per visualizzare la sottostringa di ricerca in una stringa.
string.contains()
String.IndexOf()
espressione regolare. è qualcosa di simile string.matches ("ja"))
La mia domanda è: Quali sono i tempi di esecuzione di ogni metodo di cui sopra? quale è il modo più veloce o più efficiente o più popolare per verificare se l'elenco di string contiene una sottostringa data.
So che esistono alcuni algoritmi che fanno la stessa cosa, come l'algoritmo di ricerca stringa Boyer-Moore, l'algoritmo di Knuth-Morris-Pratt e così via. Non voglio usarli perché ho solo una piccola lista di stringhe, e penso che usarli sia un po 'eccessivo per me in questo momento. Devo anche scrivere un sacco di codice extra per un algoritmo non incorporato. Se pensi che i miei pensieri non siano corretti, non esitare a correggermi.
Perché pensi che la ricerca della sottostringa sia un problema di prestazioni? – chrylis
buono qui http://stackoverflow.com/questions/5296268/fastest-way-to-check-a-string-contain-another-substring-in-javascript – Krishna
Non dovrebbe essere complicato impostare alcune semplici prestazioni Mettiti alla prova! – FrankPl