Envisager names[i].trim()
.
Lorsque names[i]
est une chaîne, vous avez vraiment quelque chose comme someString.trim()
qui fonctionne bien. Lorsque names[i]
est un zéro, cependant, vous avez vraiment quelque chose comme null.trim()
. Vous avez déjà découvert que null n'autorise pas une méthode trim(). (En fait, je ne suis même pas vraiment sûr de ce qu'est 'null'.)
Par conséquent, vous devez vérifier null avant d'appeler trim().
Lorsque vous avez a && b
, où a
et b
sont des expressions, les contrôles sont effectués de gauche à droite et l'analyseur s'arrête dès que le problème est résolu. Donc pour l'opérateur logique et (& &), si a
est faux alors b
n'est jamais vérifié. C'est ce qui permet
if (a != null && a.trim().length() > 0) { ... }
de travailler. si a
est nul, la partie a.trim() n'est pas exécutée puisqu'elle serait inutile d'un point de vue logique; la valeur du conditionnel a été décidée.
De même pour
if (a == null || a.trim().length() == 0) { ... }
si a
est nul alors la partie a.trim() est jamais réalisée et nous ne sommes pas une erreur.
@ColinD qu'est-ce qui a été édité? – Snowman
J'ai ajouté l'étiquette de devoir, comme ceci se lit comme un devoir. Si ce n'est pas, mon erreur.Mais en regardant l'historique de vos questions, je pense que vous devez passer plus de temps à apprendre cela vous-même et un peu moins à poser des questions pour chaque chose. Si vous prenez le temps de comprendre certaines de ces choses par vous-même, vous finirez probablement par mieux comprendre. – ColinD
Je demande seulement si je passe trop de temps là-dessus .. la plupart des réponses que j'ai reçues étaient des choses que je n'aurais jamais compris moi-même de toute façon ... comme vérifier null avant d'utiliser trim. Je ne l'aurais jamais compris, même si j'avais passé des heures dessus ... – Snowman