从排序数组中删除0值?

汉娜:

我想知道是否有一种方法可以删除运行以下代码时获得的默认“ 0”值:

Scanner scan = new Scanner(System.in);

int [] x = new int[4];
for ( int i = 1; i < x.length; i++ )
{
    System.out.println( "Enter number " + i + ": ");
    x[i] = scan.nextInt();
}
Arrays.sort(x);
System.out.println(Arrays.toString(x));
}

输出如下

[0, i[1], i[2], i[3]]

当然,这里所有的数组值实际上都是在控制台中输入的数字。代码在工作。它成功地将任何数字按正确的顺序排序,但是,总会有这个讨厌的0。

我不想删除所有0(我希望用户能够输入0并显示出来)-我只是不想使用默认值0。有什么想法吗?

基思·欧文(Keith Irwin):

当分配大小为4的数组时,将分配四个整数:i [0],i [1],i [2]和i [3]。因为Java非常友好,所以将所有这四个都设置为0。因此,您在输出中看到的是[i[0],i[1],i[2],i[3]](按排序顺序)。排序未添加0,它已经存在。如果只需要3个数字,则应分配一个int [3]而不是一个int [4]。然后,与此同时,当您要求数字1时,将其存储在i [0]中。为此,最简单的更改就是将顶行更改为

 int [] x = new int[3];

和后面的行

 x[i-1] = scan.nextInt();

不过,其他答案所建议的更改更为普遍。大多数程序员会让我从0变到2,然后在与用户交谈时输出i + 1。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章