访问java数组

访问java数组,java,arrays,methods,null,Java,Arrays,Methods,Null,当我使用以下方法时: randomWord(smallWordDictionary, outcome); 控制台打印出null,我不知道为什么。如何让控制台打印出与其smallWordDictionary数组中的元素对应的字符串?当长度大于maxWordlength时,您没有在smallWordDictionary[I]中存储任何内容 数组成员的默认值为null,而不是空字符串。(引用类型的任何数组成员的默认值为null) 因此,一些随机索引将指向仍然为空的数组成员 解决方案包括: 构建一个

当我使用以下方法时:

randomWord(smallWordDictionary, outcome);

控制台打印出
null
,我不知道为什么。如何让控制台打印出与其
smallWordDictionary
数组中的元素对应的字符串?

当长度大于
maxWordlength
时,您没有在
smallWordDictionary[I]
中存储任何内容

数组成员的默认值为
null
,而不是空字符串。(引用类型的任何数组成员的默认值为
null

因此,一些随机索引将指向仍然为空的数组成员

解决方案包括:

  • 构建一个较小的数组,该数组只包含传递的单词。不存在空值
  • 在每个未通过的成员中放置空字符串
  • 打印时检查空值
构建较小的阵列

要做到这一点,最简单的方法是使用列表

static void randomWord(String [] array, int number){
     System.out.println(array[number]);
}
打印时检查空值

for(int i=0;i<dictionary.words.length;i++){
    if(dictionary.words[i].length() <=maxWordlength){
        count++;
        smallWordDictionary[i]=dictionary.words[i]; 
    }
    else {
        smallWordDictionary[i]=""; 
    }
}

当长度超过
maxWordlength
时,您不会在
smallWordDictionary[i]
中存储任何内容

数组成员的默认值为
null
,而不是空字符串。(引用类型的任何数组成员的默认值为
null

因此,一些随机索引将指向仍然为空的数组成员

解决方案包括:

  • 构建一个较小的数组,该数组只包含传递的单词。不存在空值
  • 在每个未通过的成员中放置空字符串
  • 打印时检查空值
构建较小的阵列

要做到这一点,最简单的方法是使用列表

static void randomWord(String [] array, int number){
     System.out.println(array[number]);
}
打印时检查空值

for(int i=0;i<dictionary.words.length;i++){
    if(dictionary.words[i].length() <=maxWordlength){
        count++;
        smallWordDictionary[i]=dictionary.words[i]; 
    }
    else {
        smallWordDictionary[i]=""; 
    }
}

控制台不是智能的,如果它正在打印null,那是因为数组中的元素包含null值。我们需要完整的代码来理解您的逻辑。请阅读并改进您的问题。我同意@GhostCat,我们需要足够的代码来重现这一点并查看完整的图片。如果只能看到排水管的顶部而无法打开机柜门,则很难看到管道泄漏的位置。控制台不智能,如果它打印null,则是因为数组中的元素包含null值。我们需要完整的代码来理解您的逻辑。请阅读并改进您的问题。我同意@GhostCat,我们需要足够的代码来重现这一点并查看完整的图片。如果你只能看到排水管的顶部,无法打开柜门,就很难看到管道在哪里泄漏。我本来打算这样做的,因为我只需要6个字符或更少的单词。你问为什么要打印“null”。这就是为什么。让我添加一些代码来说明如何避免它。我该怎么做?我明白你现在说的,那么我该如何避免它?我尝试了空字符串方法,它停止了“null”的打印,但是我的方法根本不会打印任何字符串,我打算这样做,因为我只需要6个字符或更少的单词。你问我为什么要打印“null”。这就是为什么。让我添加一些代码来说明如何避免它。我该怎么做?我理解你现在所说的,那么我该如何避免它?我尝试了空字符串方法,它停止了“null”的打印,但是我的方法根本不会打印任何字符串
static void randomWord(String [] array, int number){
    String member = array[number];
    System.out.println( (null == member) ? "" : member);
}