una subcadena recorrer palabra metodo manejo hasta funciones encontrar caracter cadenas cadena java string substring indexof

recorrer - Encontrar la segunda aparición de una subcadena en una cadena en Java



recorrer una cadena en java (5)

Creo que se puede usar un ciclo.

1 - check if the last index of substring is not the end of the main string. 2 - take a new substring from the last index of the substring to the last index of the main string and check if it contains the search string 3 - repeat the steps in a loop

Nos dan una cadena, por ejemplo, "itiswhatitis" y una subcadena, por ejemplo, "is" . Necesito encontrar el índice de ''i'' cuando la cadena "is" aparece por segunda vez en la cadena original.

String.indexOf("is") devolverá 2 en este caso. Quiero que la salida sea 10 en este caso.



Puede escribir una función para devolver la matriz de posiciones de ocurrencia, Java tiene la función String.regionMatches que es bastante útil

public static ArrayList<Integer> occurrencesPos(String str, String substr) { final boolean ignoreCase = true; int substrLength = substr.length(); int strLength = str.length(); ArrayList<Integer> occurrenceArr = new ArrayList<Integer>(); for(int i = 0; i < strLength - substrLength + 1; i++) { if(str.regionMatches(ignoreCase, i, substr, 0, substrLength)) { occurrenceArr.add(i); } } return occurrenceArr; }


Utilice la versión sobrecargada de indexOf() , que toma los indes iniciales como el segundo parámetro:

str.indexOf("is", str.indexOf("is") + 1);


int first = string.indexOf("is"); int second = string.indexOf("is", first + 1);

Esta sobrecarga comienza a buscar la subcadena del índice dado.