gpt4 book ai didi

java - 为什么在我的字符串数组中的字符串之前打印 null?

转载 作者:行者123 更新时间:2023-11-29 07:37:42 24 4
gpt4 key购买 nike

很抱歉,如果这个问题在我没有看到它在堆栈溢出时被问过之前就已经被问过。该代码提示用户输入他们的姓名和模块标记,然后在最后将姓名和模块标记打印给用户。

public class Main
{
public static void main( String args[] )
{
String name_array[] = new String[4];
int mark_array[] = new int[4];
System.out.println("Please enter in your name");
String name = BIO.getString();
System.out.println("Please enter in your module mark");
int mark = BIO.getInt();

name_array[0] += name;
mark_array[0] += mark;

int i = 1;
int z = 1;
while ( ! name.equals("END"))
{
while ( ! name.equals("END"))
{
System.out.println("Please enter in your name");
name = BIO.getString();

name_array[i] += name;
++i;
break;
}
while ( ! name.equals("END"))
{
System.out.println("Please enter in your module mark");
mark = BIO.getInt();

mark_array[z] += mark;
++z;
break;
}
if (i == name_array.length)
{
break;
}
}
for (int y = 0; y < name_array.length; ++y)
{
System.out.println(name_array[y] + ' ' + mark_array[y]);
}
}
}

代码在我输入的字符串之前打印 null。如果我输入 Harry Houdini 作为名称,将打印 nullHarry Houdini。

如何避免这种情况?

最佳答案

您正在将一个值附加到 String[] 元素的默认值。

String 的默认值为 null,您的数组已使用默认值初始化:String name_array[] = new String[4];

因此,您得到 null[the name] 作为一个值。

这是一个独立的例子:

String[] foo = new String[1];
foo[0] += "bar";
System.out.println(foo[0]);

输出

nullbar

另外值得注意的是,nullString 文字是 "null",例如System.out.println((String)null); 将逐字打印 null

您可能想尝试分配值而不是附加值:name_array[0] = name;

关于java - 为什么在我的字符串数组中的字符串之前打印 null?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33628136/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com