到目前为止,这就是我所拥有的:
public static void main(String[] args) {
if(args.length > 0) {
String regExVowels = ".*[AEIOUaeiou]$";
// regEx Strings
char[] caMainArg = null;
String strMainArg = null;
for(String arg: args) {
// Convert each String arg to char array
caMainArg = arg.toCharArray();
// Convert each char array to String
strMainArg = new String(caMainArg);
}
System.out.print(strMainArg + " - " + strMainArg.length());
// if-else conditions
} else {
System.out.println("No arguments passed!");
}
}
它有效,但它只需要最后一个参数。例如:
Eclipse>运行配置...>参数
kate middleton sep30 jan25 `
只会输出:
` - 1 - special character
我想要的输出是:
kate - 4 - vowel
middleton - 9 - consonant
sep30 - even number
jan25 - odd number
` - 1 - special character
我不确定如何遍历参数并打印出适当的结果。
答案 0 :(得分:3)
您过早关闭for
循环。
你这样做:
for(String arg: args) {
// Convert each String arg to char array
caMainArg = arg.toCharArray();
// Convert each char array to String
strMainArg = new String(caMainArg);
}
System.out.print(strMainArg + " - " + strMainArg.length());
if(regExVowels.matches(strMainArg)) {
System.out.print(" - vowel");
} else if(regExUpperConsonants.matches(strMainArg) ||
.....
你需要这样做:
for(String arg: args) {
// Convert each String arg to char array
caMainArg = arg.toCharArray();
// Convert each char array to String
strMainArg = new String(caMainArg);
System.out.print(strMainArg + " - " + strMainArg.length());
if(regExVowels.matches(strMainArg)) {
System.out.print(" - vowel");
} else if(regExUpperConsonants.matches(strMainArg) ||
....
}
答案 1 :(得分:1)
穿戴,
System.out.print(strMainArg + " - " + strMainArg.length());
if(regExVowels.matches(strMainArg)) {
System.out.print(" - vowel");
} else if(regExUpperConsonants.matches(strMainArg) ||
regExLowerConsonants.matches(strMainArg)) {
System.out.print(" - consonant");
} else if(regExEven.matches(strMainArg)) {
System.out.print(" - even number");
} else if(regExOdd.matches(strMainArg)) {
System.out.print(" - odd number");
} else {
System.out.print(" - special character");
}
在你已经拥有的循环中,循环遍历参数,你的“for(String arg:args){”行约10行。
答案 2 :(得分:0)
是的,因为你应该移动它:
System.out.print(strMainArg + " - " + strMainArg.length());
if(regExVowels.matches(strMainArg)) {
System.out.print(" - vowel");
} else if(regExUpperConsonants.matches(strMainArg) ||
regExLowerConsonants.matches(strMainArg)) {
System.out.print(" - consonant");
} else if(regExEven.matches(strMainArg)) {
System.out.print(" - even number");
} else if(regExOdd.matches(strMainArg)) {
System.out.print(" - odd number");
} else {
System.out.print(" - special character");
}
你在循环中循环,因为想要检查你的所有参数,而不仅仅是最后一个参数。