如何在java中添加数组,然后使用for循环打印出来?

时间:2016-03-11 21:12:59

标签: java bluej

所以在开始时,我只是将这段代码添加到我的数组中:

public void getMyArray()
{
    myArray[0] = ("String1");
    myArray[1] = ("String2");
}

但每当我调用它时,我一直得到一个空指针异常,我不知道为什么。所以我把我的代码更改为:

public void getMyArray()
{
    String [] myArray = {"String1", "String2"};
    System.out.println(myArray);
}

现在我得到了打印时的地址:

  

[Ljava.lang.String; @ 1ca6218

5 个答案:

答案 0 :(得分:2)

您可以像这样使用Arrays.toString()

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

在代码中替换它:

public void getMyArray()
{
    String [] myArray = {"String1", "String2"};
    System.out.println(Arrays.toString(myArray));
}

输出将是:

[String1, String2]

答案 1 :(得分:0)

数组的toString()方法不会打印出java中数组中的所有对象,除非您想要覆盖它并进行自己的实现。什么是打印是对数组对象的描述。

要打印数组中的所有元素,您可以执行以下操作:

for(String myArray1 : myArray) {
    System.out.println(myArray1);
}

此外,java中的数组大小在实例化时是固定的。无论你为阵列分配多少内存,都可以留下来。如果您想更改大小,请查看ArrayListsLinkedLists以及其他结构。希望这会有所帮助。

答案 2 :(得分:0)

我想你不是在任何地方初始化你的数组,使用像

这样的东西
myArray = new String[2];

但是,除此之外,你在那里的第二个选项是打印,因为它实际上打印了String数组的对象字符串编码。相反,你将不得不循环遍历每个元素并单独打印

for(int i = 0; i < myArray.length; i++)
{
   System.out.println(myArray[i]);
}

答案 3 :(得分:0)

输出[Ljava.lang.String;@1ca6218的原因是对象的默认字符串表示形式是JVM中的字节码表示。

由于Java语言无法覆盖数组的toString(),因此您可以创建一个实用程序方法来生成更合适的字符串。

以下是您的示例:

public static String arrayToString(String[] array) {
    StringBuilder builder = new StringBuilder();
    for (String s : array) builder.append(s).append(" ");
    String result = builder.toString();
    return result.substring(0, result.length() - 1);
}

您还可以使用Java的内置数组通过Arrays实用程序类进行字符串输入:

Arrays.toString(myArray)

您获得空指针或索引超出范围的原因是因为您的数组变量引用是null或不是适当大小的数组。

在您的问题中,您需要一个包含2个元素的数组,因此new String[2]

然后您可以使用正常分配,它应该可以使用上述方法打印出字符串。

String[] myArray = new String[2];
myArray[0] = "Hello";
myArray[1] = "there.";
System.out.println(Arrays.toString(myArray));

答案 4 :(得分:0)

使用java.util.Arrays#toString

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