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