检查 java 中是否存在第二个参数



我正在向 java 作业传递两个参数,如果其中一个参数为空,我想打印一条消息。我尝试了一些事情,当我的第二个参数为空时仍然出现错误。我无法摆脱为我的第一个论点提供一些东西,而为我的第二个论点提供任何东西。

if (args.length == 0)
if (args.length > 1)
if (args[0].equal(0) || args[1].equal(0))

取决于你的论点。

你可以使用这样的东西:

if (args.length < 2 || args[0].isBlank() || args[1].isBlank()) {
// do whatever you need to do :-)
System.out.println("invalid arguments");
return;
}

请注意,isBlank(( 需要 Java 11,如果您没有 Java 11,则可以使用 isEmpty,但这不会比较空格。或者你可以使用Apache Commons StringUtils等函数来检查长度(或自己实现(。

正如Basil Bourque在评论中提到的,main方法的参数是String值,即如果您需要检查参数是否0,则需要将其检查为args[0].equals("0")而不是args[0].equal(0)

但是,如果我正确理解了您的问题,您只想检查是否缺少一个或两个参数。您可以按如下方式编写支票:

if (args.length == 0) {
System.out.println("Arguments are missing");
// ...
} else if (args.length == 1) {
System.out.println("The second arguments is missing");
// ...
} else {
// ...
}

请注意,main的库或空格参数将自动丢弃。因此,您无需测试任何参数是空还是空。

传递给main方法的参数作为String对象到达。因此,您无法与整数进行比较。

您可以循环参数,检查字符串是空还是空。

for( String arg : args )
{
if( arg.isEmpty() || arg.isBlank() ) 
{
…
} else 
{
int number = Integer.parseInt( arg ) ;  // Add try-catch for `NumberFormatException`.
if( number == 0 ) { … }
}
}

最新更新