Exception de conversion de chaîne en Java - java.lang.StringIndexOutOfBoundsException
Java est un langage de programmation populaire, dans lequel le traitement des chaînes est une partie très importante. Pour la conversion et le fonctionnement des chaînes, Java fournit une multitude d'API et d'outils permettant aux développeurs de traiter facilement les chaînes. Cependant, lors du traitement des chaînes, vous rencontrez parfois une exception java.lang.StringIndexOutOfBoundsException. Cet article explorera les causes et les solutions à cette exception.
Tout d'abord, qu'est-ce que java.lang.StringIndexOutOfBoundsException ? En termes simples, cette exception est levée lorsqu'une tentative est effectuée pour accéder à un caractère qui n'existe pas dans la chaîne ou lorsqu'un paramètre dépasse la portée de la chaîne lors de l'accès à la chaîne. Voici un exemple :
String str = "Hello World!"; char ch = str.charAt(20);
Le code ci-dessus tente d'accéder au caractère à la position 20 dans la chaîne, mais la longueur de la chaîne n'est que de 12, donc une exception StringIndexOutOfBoundsException est déclenchée. Cette exception est généralement causée par des erreurs de code du développeur ou des erreurs de données d'entrée. Dans les paragraphes suivants, nous explorerons les causes et les solutions à plusieurs situations courantes.
Un exemple a été mentionné ci-dessus, qui est l'un des plus courants situations. La méthode charAt() lève cette exception lorsque nous essayons d'accéder à un caractère inexistant dans la chaîne. Avant de résoudre ce problème, nous devons nous assurer que le paramètre index ne dépasse pas la longueur de la chaîne. Vous pouvez vérifier par la méthode suivante :
if (index >= 0 && index < str.length()) { char ch = str.charAt(index); }
L'instruction if est utilisée ici pour garantir que l'index est dans la plage de chaînes. Si l'index n'est pas compris dans la plage, la méthode charAt() ne sera pas exécutée. Cette approche peut éviter de générer des exceptions et améliorer la robustesse du code.
En Java, la méthode substring() est utilisée pour intercepter le chaîne dans la plage spécifiée. Par exemple :
String str = "Hello World!"; String substr = str.substring(3, 7);
Le code ci-dessus interceptera la sous-chaîne de la position 3 à la position 7 de la chaîne et l'attribuera à la variable substr. Cependant, si la plage spécifiée dépasse la longueur de la chaîne, une StringIndexOutOfBoundsException sera levée. De même, lorsque vous utilisez la méthode substring(), vous devez vous assurer que la position de début et la position de fin spécifiées se trouvent dans la plage de chaînes :
if (start >= 0 && end <= str.length()) { String substr = str.substring(start, end); }
L'instruction if est utilisée ici pour garantir que la position de début et la position de fin se trouve dans le caractère compris dans la plage de chaînes. S'il est hors de portée, la méthode substring() ne sera pas exécutée. Cette approche peut également éviter de générer des exceptions et améliorer la robustesse du code.
Une autre situation possible est que la chaîne est vide. Lorsque vous essayez d'accéder aux caractères d'une chaîne vide ou d'intercepter une sous-chaîne, une exception StringIndexOutOfBoundsException sera également levée. Lors du traitement d'une chaîne vide, vous devez d'abord vérifier si la chaîne est vide :
if (str != null && !str.isEmpty()) { //处理非空字符串 }
L'instruction if est utilisée ici pour garantir que la chaîne n'est pas vide. Si la chaîne est vide, l'opération correspondante ne sera pas effectuée. Encore une fois, cette approche peut éviter de générer des exceptions et améliorer la robustesse du code.
Summary
En Java, l'exception java.lang.StringIndexOutOfBoundsException est l'une des exceptions les plus courantes. Lors du traitement des chaînes, veillez à faire attention à la longueur et à la plage de la chaîne pour éviter de signaler des erreurs en cas de dépassement de la plage. Dans le code, nous pouvons utiliser des instructions if pour garantir que l'index et la plage se situent dans la plage légale. Cette approche peut améliorer la robustesse et la fiabilité du code et nous apporter une meilleure expérience de développement.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!