I got confused with how to use args.length, I have coded something here:
public static void main(String[] args) {
int[] a = new int[args.length];
for (int i = 0; i < args.length; i++) {
System.out.print(a[i]);
}
}
The printout is 0 no matter what value I put in command line arguments, I think I probably confused args.length with the args[0], could someone explain? Thank you.
int array is initialized to zero (all members will be zero) by default, see 4.12.5. Initial Values of Variables:
Each class variable, instance variable, or array component is initialized with a default value when it is created ...
For type int, the default value is zero.
You're printing the value of the array, hence you're getting 0.
Did you try to do this?
for (int i = 0; i < args.length; i++) {
System.out.print(args[i]);
}
args contains the command line arguments that are passed to the program. args.length is the length of the arguments. For example if you run:
java myJavaProgram first second
args.length will be 2 and it'll contain ["first", "second"].
And the length of the array args is automatically set to 2 (number of your parameters), so there is no need to set the length of args.
I think you're missing a code that converts Strings to ints:
public static void main(String[] args) {
int [] a = new int[args.length];
// Parse int[] from String[]
for (int i = 0; i < args.length; i++){
a[i] = Interger.parseInt(args[i]);
}
for (int i = 0; i < args.length; i++){
System.out.print(a[i]);
}
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With