args.length and command line arguments

荒凉一梦 提交于 2019-12-01 03:38:31

问题


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.


回答1:


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.




回答2:


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]);
    }
}



回答3:


args[0] is the first element of the args array. args.length is the length of the array




回答4:


The a array you iterate on is not the args that contains the actual arguments. You should try:

public static void main(String[] args) {
      for(int i = 0;i<args.length;i++){
          System.out.print(args[i]);
      }
}



回答5:


args.length is = 0;

if you're looking for this output:

args[0]:zero
args[1]:one
args[2]:two
args[3]:three

here is the example...

public static void main(String[] args) {

// array with the array name "arg" String[] arg={"zero","one","two","three"};

        for( int i=0; i<arg.length ;++i)
        {
            System.out.println("args["+i+"]:"+arg[i]);
        }
    }
    }

you have to give a length to the array ..




回答6:


the arguements you are passing are stored in args array and not your so called array a. by default a properly declared array if not initialized takes the default values of its datatypes. in your case 0.

so you do

public static void main(String[] args) {
for(int i = 0;i<args.length;i++){
System.out.print(args[i]);
}
}

or initialize the array a with the args.



来源:https://stackoverflow.com/questions/18446509/args-length-and-command-line-arguments

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!