[英]Java Command line arguments
我试图检测'a'是否作为第一个字符串参数输入。
如果您计划通过单个arg扩展,请使用apache commons cli 。
“Apache Commons CLI库提供了一个API,用于解析传递给程序的命令行选项。它还能够打印详细说明命令行工具可用选项的帮助消息。”
Commons CLI支持不同类型的选项:
public class YourClass {
public static void main(String[] args) {
if (args.length > 0 && args[0].equals("a")){
//...
}
}
}
每个Java程序都以
public static void main(String[] args) {
main()
作为参数的String
类型数组保存程序的命令行参数。 如果用户运行您的程序
$ java myProgram a
然后args[0]
将保持字符串“a”。
命令行参数在第一个String[]
参数中传递给main()
,例如
public static void main( String[] args ) {
}
在上面的示例中, args
包含所有命令行参数。
对提出的问题的简短而甜蜜的回答是:
public static void main( String[] args ) {
if( args.length > 0 && args[0].equals( "a" ) ) {
// first argument is "a"
} else {
// oh noes!?
}
}
命令行参数可通过main
方法的String[] args
参数访问。
对于第一个参数,您可以检查args[0]
整个代码看起来像
public static void main(String[] args) {
if ("a".equals(args[0])) {
// do something
}
}
尝试传递值a并使用equals方法进行比较,如下所示:
public static void main(String str[]) {
boolean b = str[0].equals("a");
System.out.println(b);
}
请点击此链接以了解有关Java中命令行参数的更多信息
您的main
方法有一个String[]
参数。 它包含已传递给应用程序的参数(通常称为args
,但这不是必需的)。
命令行参数作为字符串存储在String
数组String[] args that is passed to
main()`。
java [program name] [arg1,arg2 ,..]
命令行参数是在运行程序时从命令提示符接受的输入。 传递的参数可以是任何东西。 哪个存储在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]);
}
}
例:
java Argdemo one two
输出将是:
there are 2 command line arguments:
they are:
arg[0]:one
arg[1]:two
正如其他人所说的...... .equals方法就是你所需要的。
在这个机会中你使用了类似的东西:
if(argv[0] == "a")
然后它不起作用,因为==比较两个对象的位置(物理相等)而不是内容(逻辑相等)。
由于命令行中的“a”和程序源中的“a”分配在两个不同的位置,因此无法使用==。 您必须使用equals方法,它将检查两个字符串是否具有相同的字符。
另一个注意事项......“a”==“a”在很多情况下会起作用,因为字符串在Java中是特殊的,但在99.99999999999999%的时候你想要使用.equals。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.