J'essaie de détecter si le «a» a été entré comme premier argument de chaîne.
public class YourClass {
public static void main(String[] args) {
if (args.length > 0 && args[0].equals("a")){
//...
}
}
}
Utilisez le Apache commons cli si vous envisagez de prolonger cette argumentation au-delà d’un argument.
"La bibliothèque CLI d'Apache Commons fournit une API permettant d'analyser les options de ligne de commande transmises aux programmes. Elle est également capable d'imprimer des messages d'aide détaillant les options disponibles pour un outil de ligne de commande."
Commons CLI prend en charge différents types d’options:
Chaque programme Java commence par
public static void main(String[] args) {
Ce tableau de type String
que main()
prend en paramètre contient les arguments de ligne de commande de votre programme. Si l'utilisateur exécute votre programme en tant que
$ Java myProgram a
alors args[0]
tiendra la chaîne "a".
Les arguments de ligne de commande sont passés dans le premier paramètre String[]
à main()
, par exemple.
public static void main( String[] args ) {
}
Dans l'exemple ci-dessus, args
contient tous les arguments de la ligne de commande.
La réponse courte et douce à la question posée est la suivante:
public static void main( String[] args ) {
if( args.length > 0 && args[0].equals( "a" ) ) {
// first argument is "a"
} else {
// oh noes!?
}
}
Les arguments de ligne de commande sont accessibles via le paramètre String[] args
de la méthode main
.
Pour le premier argument, vous pouvez vérifier args[0]
le code entier ressemblerait
public static void main(String[] args) {
if ("a".equals(args[0])) {
// do something
}
}
Votre méthode main
a un argument String[]
. Cela contient les arguments qui ont été transmis à vos applications (elle s'appelle souvent args
, mais ce n'est pas une obligation).
Essayez de passer la valeur a et de comparer en utilisant la méthode equals comme ceci:
public static void main(String str[]) {
boolean b = str[0].equals("a");
System.out.println(b);
}
Suivez ce lien pour en savoir plus sur Argument de ligne de commande en Java
Comme tout le monde l’a dit, la méthode .equals est ce dont vous avez besoin.
Vous avez utilisé par hasard quelque chose comme:
if(argv[0] == "a")
alors cela ne fonctionne pas car == compare l'emplacement des deux objets (égalité physique) plutôt que le contenu (égalité logique).
Puisque "a" de la ligne de commande et "a" dans le code source de votre programme sont alloués à deux endroits différents, le == ne peut pas être utilisé. Vous devez utiliser la méthode equals qui vérifiera que les deux chaînes ont les mêmes caractères.
Une autre remarque ... "a" == "a" fonctionnera dans de nombreux cas, car les chaînes sont spéciales en Java, mais 99,99999999999999% des fois que vous souhaitez utiliser .equals.
Les arguments de ligne de commande sont stockés sous forme de chaînes dans le tableau String
. String[] args that is passed to
main () `.
Java [program name] [arg1,arg2 ,..]
Les arguments de ligne de commande sont les entrées qui acceptent à partir de la commande Invite lors de l'exécution du programme. Les arguments passés peuvent être n'importe quoi. Qui est stocké dans le tableau args[]
.
//Display all command line information
class ArgDemo{
public static void main(String args[]){
System.out.println("there are "+args.length+"command-line arguments.");
for(int i=0;i<args.length;i++)
System.out.println("args["+i+"]:"+args[i]);
}
}
Exemple:
Java Argdemo one two
La sortie sera:
there are 2 command line arguments:
they are:
arg[0]:one
arg[1]:two