任何人都知道如何检查数组索引(不仅仅是一个索引)是否为空,如果为空或为零则在其中放置一个值。如果所有索引都不为空,则打印错误。
抱歉,遗憾的是我无法提供代表。
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]);
}
}
}
on here:
for(int s=0; s<newData.length; s++){
System.out.printf("%5d%8d\n", s, newData[s]);
}
如何检查多个索引(如果为空?
如果索引为空,如何检查下一个索引,如果该索引不为空,我如何检查下一个索引,等等?
原始数组中的元素不能为空。他们总是会被初始化为某些东西
如果你像这样声明数组
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");
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)