我想知道java行if (args[0].length > 2)
是否是有效行。我正在接受命令行参数,我想知道第一个数组中的数字量是否超过两位数。例如,2014年将允许if
语句为真。如果用户的输入是例如52,则if
语句将不成立,并且它将移至下面的else if
语句中。
答案 0 :(得分:5)
如果 args
被声明为String[][]
,那么这是一个有效的行 - 但这不是一个main
方法的声明方式。 length
是数组的有效成员,但它不是String
类的(公共)成员。
如果您要检查字符串的长度,则需要length()
方法。例如:
if (args[0].length() > 2)
您可能需要首先使用args.length
检查是否某些参数。例如:
public static void main(String[] args) {
if (args.length == 0) {
System.out.println("You need to give me an argument!");
return;
}
if (args[0].length() > 2) {
System.out.println("The first argument has more than 2 characters");
} else {
System.out.println("The first argument has 0-2 characters");
}
}
答案 1 :(得分:1)
是的,您可以使用String#length()
方法,我认为应该添加null
检查
if (args[0]!=null && args[0].length() > 2)
答案 2 :(得分:0)
如果args[0]
是一个数组且不是null
那么
if (args[0].length > 2)
是一个有效的选项。
答案 3 :(得分:0)
if (args[0].length > 2)
其invalid
表达式bcoz String不包含任何长度字段。
更改为
if (args[0].length() > 2)
获取String的长度
答案 4 :(得分:0)
您正在谈论命令行参数,所以......
我想知道java行“if(args [0] .length> 2)”是否是有效行。
没有。 args
是String[]
,因此args[0]
是String
。 String
没有length
公共静态字段。
然而:
我想知道第一个数组中的数字量是否超过两位数
因此,如上所述,args[0]
是String
。 这不是阵列!。例如,与C不同,String
与char[]
没有“直接映射”。事实上,C没有像String
那样的东西。使用Java,您必须使用.toCharArray()
从char[]
获取String
。
如果你想查找String
是否有两个以上的数字,那么你应该写:
if (args[0].matches("[0-9]{2,}"))
这将检查字符串是否长2个字符或更长,并且其中的所有字符都是数字。
这使用regular expression来检查你的论点。如果正则表达式成功,则可以使用:
转换为整数Integer.parseInt(args[0])
如果没有溢出!