数组开头的奇怪null

时间:2015-01-27 02:20:34

标签: java null

public String getValues(int start, int end) 
{
    String[] values  = new String[end+1];
    for(int i=start;i<values.length;i++)
    {
       if(i % ham != 0 && i % spam != 0)
       {
           values[i]=Integer.toString(i);
       }
       else if(i % ham == 0 && i % spam != 0)
       {
           values[i]= word2;
       }
       else if(i % ham != 0 && i % spam == 0)
       {
           values[i]= word3;
       }
       else if(i % ham == 0 && i % spam == 0)
       {
           values[i]= word1;
       }
    }
    String str1= java.util.Arrays.toString(values);
    return str1;
}

基本上,您输入火腿值,垃圾邮件值,开头和结尾。该方法应该通过数组运行并检查我是否可以被火腿数或垃圾邮件数量或两者整除。如果它不是,它给出字符串Integer.toString(i)的元素;

给定ham=3, spam=4, start=2, end=6。它应该产生{2, ham, spam, 5, ham}

我的生产{null, null, 2, ham, spam, 5, ham}。我不知道前两个空值来自哪里。

2 个答案:

答案 0 :(得分:1)

值包含索引0到结尾的元素;从start = 2开始,你永远不会设置任何索引小于2的元素,因此这些索引的元素会将它们的默认值零售:null。

答案 1 :(得分:1)

Arrays.toString打印整个数组,而不仅仅是您的方法在起始索引之后填充的部分。你说start = 2,所以之前的两个位置都是null。