main() arguments en java
Je suis en train d'écrire un code pour un programme qui recives chaînes en entrée.
Le programme affiche "Erreur" quand l'utilisateur ne met pas toutes les données, sinon il imprime le premier argument de type chaîne.
Est-il juste de se référer à aucune donnée comme une "nulle"?
Il ne fonctionne pas. que dois-je écrire à la place?
public class Try {
public static void main(String[] args){
if (args[0]==null){
System.out.println("Error- please type a string");
}else {System.out.println(args[0]);}
}
}
Ce n'est pas vrai en Java. args[0] est toujours le premier argument, s'il y a au moins un (d'autre, la longueur du tableau est 0)
Nizet - Vous sont corrects. Juste confondu avec
Nizet - Vous sont corrects. Juste confondu avec
C++
. Va supprimer mon commentaire. Merci.OriginalL'auteur Unknown user | 2011-03-11
Vous devez vous connecter pour publier un commentaire.
Arguments ne seront jamais
null
si ils existent en premier lieu -- pour vérifier cela, vous devez utiliserargs.length
à la place:OriginalL'auteur casablanca
Pas tout à fait: vous souhaitez
args.length==0
:Avec votre code actuel, il va lever une exception si il n'est pas un argument, puisque la matrice sera de 0 longueur et d'accéder à n'importe quel élément va donc jeter un
IndexOutOfBoundsException
.OriginalL'auteur Michael Berry
vous pouvez vérifier la valeur de l'argument de l'attribut "longueur", si la valeur est 0, ce qui signifie que l'utilisateur ne met pas toutes les données
OriginalL'auteur opps
Ressemble à ce qui est appelé en ligne de commande. Si l'utilisateur ne fournit pas d'arguments alors
args
sera de longueur 0, doncargs[0]
sera un indice en dehors des limites d'erreur. Au lieu de vérifier null vous voulez vérifier la longueur deargs
.OriginalL'auteur Herms
Vous aurez envie de tester si
args.length
est de 0.OriginalL'auteur Jacob