【问题标题】:How to check if array indexes are empty and if so check the next?如何检查数组索引是否为空,如果是,请检查下一个?
【发布时间】:2012-04-04 20:00:21
【问题描述】:

任何人都知道如何检查数组索引(不仅仅是一个索引)是否为空,以及是否为空或零在此处放置一个值。而且,如果所有索引都不为空,则打印错误。

很抱歉,我不能提供代表。

import java.util.Scanner; 

public class Myhash {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub

    int [] myData = new int[17]; 

    int [] newData = new int [17];

    System.out.println("Please enter 16 integer numbers");
    for(int i= 0; i<myData.length; i++){
        //System.out.print("Please enter 16 numbers");
        Scanner input = new Scanner(System.in);
        int data =input.nextInt(); 
        myData[i]=data; 
        int num3 = data % 17;
        newData[num3]=data; 
    }       

    System.out.println("These are the numbers you entered\n");      
    System.out.printf("%s%8s \n", "Index", "Value"); 

    for(int t=0; t<myData.length; t++){
        System.out.printf("%5d%8d\n", t, myData[t]);
    }

    System.out.println("\n");
    System.out.println("The Hash Function:\n\n");
    System.out.printf("%5s%8s \n", "Index", "Value"); 

            for(int s=0; s<newData.length; s++){
        System.out.printf("%5d%8d\n", s, newData[s]);
            }   
    }
}

在这里:

    for(int s=0; s<newData.length; s++){
    System.out.printf("%5d%8d\n", s, newData[s]);
    }

如何检查多个索引(如果为空? 如果索引为空如何检查下一个索引,如果该索引不为空,我如何检查下一个等?

【问题讨论】:

  • 另外,数组存储的是什么?字符串、整数等?
  • 在java中是一个int。我只知道如何检查一个索引
  • 呃,索引为“空”是什么意思???
  • 默认情况下,int 数组的值全为零。因此,如果元素为零,则它尚未设置或已设置为零:)
  • 我想不通:如果索引为空,如何检查下一个索引,如果该索引不为空,我如何检查下一个等?正如ajozwik所说,如果为零则被认为是空的,因为是一个int

标签: java arrays


【解决方案1】:

原始数组中的元素不能为空。他们总是会被初始化为一些东西

如果你这样声明数组

 int [] newData = new int [17];

那么所有元素都将默认为零。

为了检查一个元素是否没有被输入,你可以使用一个简单的循环:

 for(int i=0;i<newData.length;i++)
    {
        if(newData[i]==0)
            System.out.println("The value at " + i + "is empty");
    }

虽然,上面的代码在你的情况下不起作用,因为用户可能输入 0 作为输入值,但这段代码仍然会认为它是空的。

您可以做的是,将所有值初始化为-1的数组,并在输入提示符处指定只能输入>=0的值。 初始化可以这样完成:

int[] newData = new int[17];
for(int i=0;i<newData.length;i++)
{
   newData[i]= -1;   
}

然后您可以要求用户输入并进行处理。然后你可以使用这个:

for(int i=0;i<newData.length;i++)
    {
        if(newData[i]==-1)
           System.out.println("The value at " + i + "is empty");
    }

【讨论】:

    【解决方案2】:

    这里:

    for(int i = 0; i < array.length; i++)
    {
        if(array[i] == null)
            continue;
    }
    

    【讨论】:

    • 你必须解释更多。这基本上是一个纯代码的答案。
    猜你喜欢
    • 1970-01-01
    • 2017-08-02
    • 1970-01-01
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2013-01-05
    • 1970-01-01
    相关资源
    最近更新 更多