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

如何在java中添加到数组中,然后使用for循环打印出来?,java,bluej,Java,Bluej,因此,在一开始,我只是将以下代码添加到我的数组中: public void getMyArray() { myArray[0] = ("String1"); myArray[1] = ("String2"); } 但是每当我调用它时,我总是得到一个空指针异常,我不知道为什么。因此,我将代码更改为: public void getMyArray() { String [] myArray = {"String1", "String2"}; System.out.p

因此,在一开始,我只是将以下代码添加到我的数组中:

public void getMyArray()
{
    myArray[0] = ("String1");
    myArray[1] = ("String2");
}
但是每当我调用它时,我总是得到一个空指针异常,我不知道为什么。因此,我将代码更改为:

public void getMyArray()
{
    String [] myArray = {"String1", "String2"};
    System.out.println(myArray);
}
现在我得到了打印时的地址:

[Ljava.lang.String;@1ca6218

数组的toString()方法不会在java中打印出数组中的所有对象,除非您希望重写它并创建自己的实现。打印的是数组对象的描述

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

for(String myArray1 : myArray) {
    System.out.println(myArray1);
}
此外,java中数组的大小在实例化时是固定的。无论为数组分配多少内存都可以保留。如果要更改大小,请查看or和其他结构。希望这能有所帮助。

toString()数组的方法不会在java中打印出数组中的所有对象,除非您希望重写它并创建自己的实现。打印的是数组对象的描述

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

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

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

我想您不是在任何地方初始化数组,而是使用

myArray = new String[2];
但是,除此之外,还有第二个选项是打印,因为它实际上是打印字符串数组的对象字符串编码

for(int i = 0; i < myArray.length; i++)
{
   System.out.println(myArray[i]);
}
for(int i=0;i
我想您并不是在任何地方初始化数组,而是使用

myArray = new String[2];
但是,除此之外,还有第二个选项是打印,因为它实际上是打印字符串数组的对象字符串编码

for(int i = 0; i < myArray.length; i++)
{
   System.out.println(myArray[i]);
}
for(int i=0;i
在输出中获得
[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);
}
您还可以通过
Arrays
实用程序类使用Java的内置数组来字符串:

Arrays.toString(myArray)

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

在您的问题中,您将需要一个包含2个元素的数组,因此
新字符串[2]

然后,您可以使用普通赋值,它应该可以与上面的方法一起打印字符串

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

在输出中获得
[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);
}
您还可以通过
Arrays
实用程序类使用Java的内置数组来字符串:

Arrays.toString(myArray)

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

在您的问题中,您将需要一个包含2个元素的数组,因此
新字符串[2]

然后,您可以使用普通赋值,它应该可以与上面的方法一起打印字符串

String[] myArray = new String[2];
myArray[0] = "Hello";
myArray[1] = "there.";
System.out.println(Arrays.toString(myArray));
您可以这样使用:

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

在代码中替换它:

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

[String1, String2]
您可以这样使用:

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

在代码中替换它:

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

[String1, String2]
使用
java.util.array#toString

System.out.println(Arrays.toString(myArray));
使用
java.util.array#toString

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

是的,这是预期行为,您的问题是什么?请参阅Arrays.toString:第一个示例不会编译,因为
myArray
尚未声明。如果声明为字段(未显示),则默认值为
null
,而
NullPointerException
显然就是这样的结果。是的,这是预期的行为,您的问题是什么?请参阅数组。toString:第一个示例不会编译,因为未声明
myArray
。如果声明为字段(未显示),则默认值为
null
,而
NullPointerException
显然就是这样的结果。