为什么在我的字符串数组中的字符串之前打印 null?
Why is null printed before the string, in my string array?
抱歉,如果这个问题在我没有看到它在堆栈溢出时被问到过,那么很抱歉。
该代码提示用户输入他们的姓名和模块标记,然后在最后将名称和模块标记打印给用户。
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。
如何避免这种情况?
把开头的name_array[0] += name;
改成name_array[0] = name;
。
您正在向 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
同样值得注意的是,null
的 String
文字是 "null"
,例如System.out.println((String)null);
将逐字打印 null
。
您可能想尝试分配值而不是附加值:name_array[0] = name;
抱歉,如果这个问题在我没有看到它在堆栈溢出时被问到过,那么很抱歉。 该代码提示用户输入他们的姓名和模块标记,然后在最后将名称和模块标记打印给用户。
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。
如何避免这种情况?
把开头的name_array[0] += name;
改成name_array[0] = name;
。
您正在向 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
同样值得注意的是,null
的 String
文字是 "null"
,例如System.out.println((String)null);
将逐字打印 null
。
您可能想尝试分配值而不是附加值:name_array[0] = name;