2016-11-27 1 views
-4
public boolean isANumber (String s) 
{ 
    for (int i = 0; i < s.length(); i++) 
    { 
     if (!Character.isDigit(s.charAt(i))); 
     { 
     return false; 
     } 
    } 
    return true; 
} 

J'ai obtenu cette méthode d'Apache Commons Lang et l'ai modifiée un peu pour être plus courte. Que l'entrée soit une lettre ou un chiffre, la sortie est toujours fausse. Quelqu'un pourrait-il me dire pourquoi s'il-vous-plaît? :)Méthode utilisant Character.isDigit() Renvoie false pour tout

Merci à l'avance,

A.Nur

+8

surveillez vos points-virgules. Et par cela je veux dire se débarrasser du point-virgule à la fin de votre instruction if – 3kings

+0

if-block n'a aucun effet dans votre code car le point-virgule se présente simplement et vous renvoyez false toujours dans l'instruction {} block. Supprimer le point-virgule, il devrait fonctionner –

Répondre

0

Le code corrigé

public boolean isANumber (String s) 
{ 
    for (int i = 0; i < s.length(); i++) 
    { 
     if (!Character.isDigit(s.charAt(i))) 
     { 
     return false; 
     } 
    } 
    return true; 
} 

C'est un bon argument pour mettre l'accolade à la fin de la ligne, au lieu de le début de la ligne suivante.

+0

Ah, je vois. Je mets un point-virgule au mauvais endroit. Merci beaucoup! –