Como mencionamos anteriormente un Strings no es más que una cadena de caracteres, caracteres que se encuentran en una posición en especifica, es decir, poseen un índice.
Al igual que los arreglos los String comenzarán en el índice 0.
Si nosotros queremos conocer la cantidad de caracteres que posee un String haremos uso del método length().
String mensaje = "Hola Mundo";
System.out.println(mensaje.length());
Podemos obtener un carácter con respecto a su índice utilizando el método charAt(). Este método nos retorna una variable de tipo char.
String mensaje = "Hola Mundo";
char lentraH = mensaje.charAt(0);
System.out.println(lentraH);
Si no conocemos en que índice se encuentra un caracter, haremos uso de los métodos indexOf o lastIndexOf.
String mensaje = "Hola Mundo";
int indice = mensaje.indexOf("M");
System.out.println(indice);
Ambos métodos nos retornarán el índice de la primera aparición del caracter a buscar, la única diferencia es que indexOf hará la búsqueda de izquierda a derecha, caso contrario con lastIndexOf, que será de derecha a izquierda.
En dado caso el caracter a buscar no exista dentro del String, ambos métodos nos retornarán -1.
Si queremos que la búsqueda comience a partir de un índice, colocaremos un segundo argumento, el índice a partir del cual se iniciará la búsqueda.
String mensaje = "Este mensaje posee muchas letras a";
int indicePrimeraA = mensaje.indexOf("a");
int indiceSegundaA = mensaje.indexOf("a" indicePrimeraA + 1 );
En este caso buscamos el índice de la segunda letra a.
Si queremos obtener un sub String nos apoyaremos del método substring.
- String.substring(indiceInicial) retorna un sub String a partir del índice indicado hasta el último carácter del String.
String mensaje = "Hola Mundo";
int indiceLetraM = mensaje.indexOf("M");
String subString = mensaje.substring(indiceLetraM);
System.out.println(subString);
- String.substring(indiceInicial, indiceFinal) retornar un sub String a partir del índice indicado hasta el índice final.
String mensaje = "Hola Mundo";
int indiceLetraM = mensaje.indexOf("M");
String subString = mensaje.substring(indiceLetraM, indiceLetraM + 2);
System.out.println(subString);