我正在向 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 ) { … }
}
}