0

我已经开始学习JAVA了,我学会了main方法

public static void main (String [] chpt)

程序员经常喜欢写的 ARGS 也可以写成你想要的任何单词。我声明中的 ARGS 或 CHPT 应该是一个数组。如何查看这个数组的内容?我试过

System.out.println(Arrays.deepToString(chpt)); and
System.out.println(Arrays.toString(chpt));

这是整个程序

public class Dislpy{    
static int square(int num) {
    // TODO Auto-generated method stub
    return num *num;

}
public static void main(String[] chpt) {
    // TODO Auto-generated method stub
    int num = 12;

    int counter = chpt.toString().length();
    System.out.println("Squared is " +square(num) +" " +counter);
    System.out.println(Arrays.deepToString(chpt));
     for (int i = 0; i<= counter; i++){
        System.out.println("over here "+chpt.toString().indexOf(i));
    }
   }
}

但它没有用,输出是

Squared is 144 27
[]
Over here -1.................this line was printed 27 times.

27是什么?27 在这里意味着什么?正如@peeskillet 在他的回答中提到的那样,没有通过命令行传递任何参数,因此它不会显示任何参数。

我想访问 chpt 数组的内容。帮助我更好地理解这一点。谢谢,干杯!

Eclipse 中显示的输出 设计僧侣

4

6 回答 6

2
for (String argument : chpt) {
    System.out.println(argument);
}
于 2013-11-14T14:37:04.137 回答
2

更新的答案

这有效:

public static void main(String[] chpt) {
    int counter = Integer.parseInt(chpt[0]);
    for (int i = 0; i <= counter; i++) {
        System.out.println("over here " + square(i));
    }
}

over here 0
over here 1
over here 4
over here 9

数组长度

您的代码中的魔法 27 是字符串长度,而不是数组大小:

chpt.toString().length() == 27
"[Ljava.lang.String;@5dcba031".length() == 27

正确的方法是

System.out.println(chpt.size());

打印数组

使用数组它是:

public static void main(String[] args) {
    System.out.println(java.util.Arrays.toString(args));
}

args 是原始类型String[]

System.out.println(Arrays.toString(args)); 

当打印结果类似于:

[Ljava.lang.String;@5dcba031

但转换为列表后"

System.out.println(Arrays.toString(args));

很好地打印所有元素

于 2013-11-14T14:42:46.480 回答
1

运行此测试

文件 TestClass.java

public class TestClass {
    public static void main(String[] args){
        if (args.length == 0){
            System.out.println("You need at least one arg dummy!");
            System.exit(0);
        } else {
            for (String s : args){
                System.out.println(s);
            }
        }
    }
}

将文件另存为 TestClass.java
转到命令行并转到 java 文件的目录并键入: 然后键入:
javac TestClass.java

java TestClass "Hello, world!" "Hello, Dummy!" "Where are my Dragons?!"

看看你得到了什么。

传递给命令行的每个参数都用空格分隔。如果我把引号去掉,就会有 8 个参数而不是 3 个。

于 2013-11-14T14:47:02.330 回答
0

试试这个

for(String s : chpt){
   System.out.println(s);
}

这不仅适用于 String[] args。对于所有 Iterable ..

于 2013-11-14T14:37:26.830 回答
0
String [] chpt// would print out [] as it contains no values nor are values added to it.
于 2013-11-14T14:41:45.007 回答
-1

您想要一种可以打印字符串数组的每个索引的方法,即

public static void printStringArray(String[] myArray){
    for(int i = 0; i < myArray.length; i++){
        System.out.println(myArray[i]);
    }
}
于 2013-11-14T14:37:48.347 回答