Arreglar Java.Lang.StringIndexOutOfBoundsException: índice de cadena fuera de rango
Este tutorial demuestra el error Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 0
en Java.
Solucione el error java.lang.StringIndexOutOfBoundsException: índice de cadena fuera de rango
La StringIndexOutofBoundsException
es una excepción no verificada que ocurre cuando se accede al carácter de una cadena cuyo índice es negativo o mayor que la longitud de la cadena. Esta excepción también se lanza cuando usamos el método charAt()
, que intenta acceder a un carácter que no está en el String.
Debido a que StringIndexOutofBoundsException
es una excepción no verificada, no necesita agregarse a los lanzamientos de un método o constructor; podemos manejarlo usando el bloque try-catch
. Estos son los escenarios específicos donde puede ocurrir esta excepción:
- Al usar
String.charAt(int index)
, que devolverá un carácter en un índice de cadena determinado. Si el índice es negativo o mayor que la longitud de String, arrojará la excepciónStringIndexOutofBoundsException.
. - Cuando se usa
String.valueOf(char[] data, int offset, int count)
que devuelve una cadena con argumentos dados. Lanzará la excepciónStringIndexOutofBoundsException
cuando cualquier índice sea negativo ooffset + count
sea mayor que el tamaño de la matriz. - Al usar
CharSequence.subSequence(int beginIndex, int endIndex)
que devuelve una secuencia de caracteres. Lanzará la excepciónStringIndexOutofBoundsException
cuandobeginIndex
sea mayor queendIndex
oendIndex
sea mayor que la longitud de la cadena. - Al usar
String.substring(int beginIndex)
, que devuelve una subcadena de la Cadena dada. Lanzará la excepciónStringIndexOutofBoundsException
cuandobeginIndex
sea negativo o mayor que la longitud de la cadena. - Al usar
String.substring(int beginIndex, int endIndex)
, que devuelve una subcadena entre un rango específico. Lanzará la excepciónStringIndexOutofBoundsException
cuando cualquier índice sea negativo, oendIndex
sea mayor que la longitud de la cadena debeginIndex
sea mayor queendIndex
.
Probemos un ejemplo para StringIndexOutofBoundsException
. Ver ejemplo:
package delftstack;
public class Example {
public static void main(String[] arg) {
String DemoStr = "delftstack";
System.out.println(DemoStr.charAt(11));
}
}
El código anterior arrojará StringIndexOutofBoundsException
porque no hay ningún carácter en el índice 11. Vea el resultado:
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String index out of range: 11
at java.base/java.lang.StringLatin1.charAt(StringLatin1.java:48)
at java.base/java.lang.String.charAt(String.java:1512)
at delftstack.Example.main(Example.java:7)
La StringIndexOutOfBoundsException
se puede manejar usando bloques try-catch
. Ver solución:
package delftstack;
public class Example {
public static void main(String[] arg) {
String DemoStr = "delftstack";
try {
System.out.println(DemoStr.charAt(11));
} catch (StringIndexOutOfBoundsException e) {
System.out.println("Please insert a index under String length: " + DemoStr.length());
}
}
}
Ahora la salida para el código anterior es:
Please insert a index under String length: 10
Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.
LinkedIn FacebookArtículo relacionado - Java Error
- Arreglar Java fue iniciado por el código de salida devuelto = 1
- Arreglar JAVA_HOME no se puede determinar a partir del error de registro en R
- Arreglar java.io.IOException: No queda espacio en el dispositivo en Java
- Arreglar Java.IO.NotSerializableException en Java
- Arreglar Java.Lang.IllegalStateException de Android: no se pudo ejecutar el método de la actividad
- Arreglar Java.Lang.NoClassDefFoundError: No se pudo inicializar el error de clase