Il y a une catégorie de questions sur le SO qui ne sont pas toujours parfaitement sensées, celle-ci en est dangereusement proche :-)
Peut-être pourriez-vous expliquer votre aversion à utiliser l'une des deux méthodes que vous avez écartées.
Si c'est juste parce que vous ne voulez pas saupoudrer votre code de if
ou du code de capture d'exception, une solution consiste à utiliser une fonction d'aide qui s'en chargera pour vous, quelque chose comme :
static String substring_safe (String s, int start, int len) { ... }
qui vérifiera les longueurs au préalable et agira en conséquence (soit en retournant une chaîne plus petite, soit en la remplissant d'espaces).
Vous n'avez donc pas à vous en soucier dans votre code, il suffit d'appeler :
String s2 = substring_safe (s, 10, 7);
au lieu de :
String s2 = s.substring (10,7);
Cela fonctionnerait dans le cas qui semble vous préoccuper (d'après vos commentaires sur d'autres réponses), à savoir ne pas rompre le flux du code lorsque l'on fait beaucoup de constructions de chaînes.
1 votes
À moins que vous ne capturiez l'exception, je ne sais pas comment vous comptez gérer le cas où la longueur du caractère est supérieure à la longueur de la chaîne.
2 votes
Pourquoi ? Quelle est votre aversion pour la vérification de la longueur ou la capture d'une exception ?
1 votes
Par curiosité, pourquoi voulez-vous éviter le contrôle de la taille ? Ce n'est pas du C.
0 votes
Ce que je voulais exprimer, c'est le désir d'éviter un bloc if/else, et non une aversion à vérifier réellement la longueur.
0 votes
Duplicata potentiel de : stackoverflow.com/questions/8499698/