Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Can';我不明白为什么会得到空值_Java - Fatal编程技术网

Java Can';我不明白为什么会得到空值

Java Can';我不明白为什么会得到空值,java,Java,程序应该打印出每个名称被选择的次数(由星号(*)表示)。我的大部分代码都正常工作,但出于某种原因,输出中每个名称都包含两个空值,我不确定如何解决此问题。此外,如果您有时间,我也在努力找出哪个名称的星号最多。以下是一个示例输出: 1:nullnull******************************康纳 2:nullnull*********************************************约翰 等 (它会对所有10个名称执行此操作) public class ra

程序应该打印出每个名称被选择的次数(由星号(*)表示)。我的大部分代码都正常工作,但出于某种原因,输出中每个名称都包含两个空值,我不确定如何解决此问题。此外,如果您有时间,我也在努力找出哪个名称的星号最多。以下是一个示例输出:

1:nullnull******************************康纳

2:nullnull*********************************************约翰 等 (它会对所有10个名称执行此操作)

public class random studentslab{
公共静态void main(字符串[]args){
//创建一个包含10名学生的数组
String[]StudentList=新字符串[10];
String[]StarString=新字符串[10];
字符串[]FinalString=新字符串[10];
//在学生名单上增加10个名字
学生名单[0]=“康纳”;
学生名单[1]=“约翰”;
学生名单[2]=“Alex”;
学生名单[3]=“罗伯特”;
学生名单[4]=“詹姆斯”;
学生名单[5]=“卡尔”;
学生名单[6]=“莎拉”;
学生名单[7]=“鲍勃”;
学生名单[8]=“Ethan”;
学生名单[9]=“克里斯”;
//循环250次,随机选择每个学生

for(int i=0;iFinalString和StarString数组中的元素仍未初始化。因此,使用+=运算符调用空元素上的toString并为每个字符串加上前缀“null”。

FinalString和StarString数组中的元素仍未初始化。使用+=运算符调用空元素上的toString并加上前缀“null”每个字符串。

正如他在回答中提到的那样,您从未初始化过最后一个字符串数组(就像您从未赋值一样)。这就是导致错误的原因

由于System.out.println()正在打印,您可以很容易地判断:

Number : nullnull Stars Name
很明显,您的问题是FinalString,它是唯一无法正确打印的变量

System.out.println((z+1)+": "+(FinalString[z] += StarString[z] + " "+StudentList[z]));
您在使用StarString数组时也犯了同样的错误。在这种情况下,您很幸运能够侥幸逃脱,因为您最终在循环中向StarString添加了变量

然而,不初始化任何变量是可怕的>正如他在回答中提到的那样,您从未初始化过最后一个字符串数组(就像您从未赋值一样)。这就是导致错误的原因

由于System.out.println()正在打印,您可以很容易地判断:

Number : nullnull Stars Name
很明显,您的问题是FinalString,它是唯一无法正确打印的变量

System.out.println((z+1)+": "+(FinalString[z] += StarString[z] + " "+StudentList[z]));
您在使用StarString数组时也犯了同样的错误。在这种情况下,您很幸运能够侥幸逃脱,因为您最终在循环中向StarString添加了变量


但是,不初始化任何变量是可怕的,应该有“*”在我解释的括号中,如果你想要
x
循环似乎毫无意义,你仍然可以解决这个问题。既然你已经知道它是什么,为什么还要搜索
randomNum
?而且你从来没有在
FinalString
中放入任何东西,这使得它打印
null
。应该有“*”在我解释中的括号之间,如果你想要
x
循环似乎毫无意义,你仍然可以解决这个问题。既然你已经知道它是什么,为什么还要搜索
randomNum
?而且你从来没有在
FinalString
中放入任何东西,这会使它打印
null
。我不是在第次初始化FinalString吗e在for循环中结束?否,+=对左侧变量的现有值与右侧表达式执行串联/加法。在这种情况下,如果执行
StarString[0]+=“*”;
StarString[0]的值为null,则其前缀为“*”,因此结果为“null*”我不是在for循环的末尾初始化最后一个字符串吗?否,+=对左侧变量的现有值执行串联/加法,右侧表达式。在这种情况下,如果执行
StarString[0]+=“*”;
StarString[0]的值为null,则其前缀为“*”,因此结果为“null*”谢谢,我在每个索引上将StarString和FinalString设置为空字符串,它工作了。谢谢!谢谢,我在每个索引上将StarString和FinalString设置为空字符串,它工作了。谢谢!
FinalString[0] = "Banana";