nullpoint错 为什么呀
来源:百度知道 编辑:UC知道 时间:2024/06/28 03:36:51
import java.util.Random;
public class GenerateFavor {
private String[] favors ={"数学","语文","外语","计算机","无线电","历史"};
Random random = new Random();
String[] fa ;
public String[] favorOfStudent(){
do{
int count;
count = random.nextInt(favors.length);
for(int i=0;i<count;i++){
fa[i] = favors[random.nextInt(favors.length)];
}
}while(hasDuplicatedItem(fa));
return fa;
}
//判断数组内字符串是否相等。
public boolean hasDuplicatedItem(String[] fa){
for(int i=0;i<fa.length-1;i++){
for(int j=i+1;j<fa.length;j++){
if(fa[i].equals(fa[j])){
return true;
}
}
}
return false;
}
p
你的fa没有初始化
String[] fa;
import java.util.Random;
public class GenerateFavor {
private String[] favors = { "数学", "语文", "外语", "计算机", "无线电", "历史" };
Random random = new Random();
String[] fa;
public String[] favorOfStudent() {
do {
int count;
count = random.nextInt(favors.length);
System.out.println(count);
fa=new String[count];//在这里初始化一下就可以了
for (int i = 0; i < count; i++) {
fa[i] = favors[random.nextInt(favors.length)];
}
} while (hasDuplicatedItem(fa));
return fa;
}
// 判断数组内字符串是否相等。
public boolean hasDuplicatedItem(String[] fa) {
for (int i = 0; i < fa.length - 1; i++) {
for (int j = i + 1; j < fa.length; j++) {
if (fa[i].equals(fa[j])) {
return true;
}
}
}
return false;