String match = "hello";
String text = "0123456789hello0123456789";
int position = getPosition(match, text); // should be 10, is there such a method?
138
La familia de métodos que hace esto son:
Devuelve el índice dentro de esta cadena de la primera ( o última ) aparición de la subcadena especificada [buscando hacia adelante ( o hacia atrás ) comenzando en el índice especificado].
String text = "0123hello9012hello8901hello7890";
String word = "hello";
System.out.println(text.indexOf(word)); // prints "4"
System.out.println(text.lastIndexOf(word)); // prints "22"
// find all occurrences forward
for (int i = -1; (i = text.indexOf(word, i + 1)) != -1; i++) {
System.out.println(i);
} // prints "4", "13", "22"
// find all occurrences backward
for (int i = text.length(); (i = text.lastIndexOf(word, i - 1)) != -1; i++) {
System.out.println(i);
} // prints "22", "13", "4"
Esto funciona usando expresiones regulares.
Salida:
Regla general :
fuente
Ver la cuerda javadoc
fuente
Encontrar un solo índice
Como han dicho otros, use
text.indexOf(match)
para encontrar una sola coincidencia.Encontrar múltiples índices
Debido al comentario de @ StephenC sobre el mantenimiento del código y mi propia dificultad para comprender la respuesta de @polygenelubricants , quería encontrar otra forma de obtener todos los índices de una coincidencia en una cadena de texto. El siguiente código (que se modifica a partir de esta respuesta ) lo hace:
fuente
Use string.indexOf para obtener el índice inicial.
fuente
Puede obtener todas las coincidencias en un archivo simplemente asignando dentro while-loop, genial:
fuente
i
con las+1
obras, pero de una manera indirecta. Como has mostrado aquí, informa el primerohello
eni == 1
. Es mucho más consistente si siempre usa indexación basada en 0.fuente
fuente
Tengo un código grande pero funciona bien ...
fuente
fuente
fuente
Si va a buscar coincidencias 'n' de la cadena de búsqueda, le recomiendo usar expresiones regulares . Tienen una curva de aprendizaje abrupta, pero le ahorrarán horas cuando se trata de búsquedas complejas.
fuente
para ocurrencia múltiple y el carácter encontrado en la cadena ?? sí o no
fuente
fuente