用空格替换整数

时间:2015-11-14 12:13:54

标签: java arrays

我正在打印一个由数字组成的矩阵,我使用一个二维数组来存储数字。我想用空格替换一些数字。以下不起作用,因为A是一个整数。

A[randomNum1][randomNum2] = "";

也无法进行投射

 A[randomNum1][randomNum2] = (int)"";

我怎样才能做到这一点?

3 个答案:

答案 0 :(得分:2)

如果Aint[][]数组,则无法完成。如果您使用Integer[][]数组,则可以在数组中存储null而不是空String(以标记缺少值)。然后,当您打印数组时,遇到null时可以打印空白区域。

答案 1 :(得分:0)

诸如int之类的数据类型定义了一组整数,而没有别的。然而,现实经常要求我们区分“其中一个值”和“没有一个”。术语“稀疏数组”有时用于表示不存在多个(许多)元素的数组。

您有几种选择。

  1. 使用整数(由Eran提出)然后你有一个额外的值,即null,来表示“没有人”。
  2. 留出一个int值,例如Integer.MIN_VALUE,或者,如果您实际需要存储的值是非负值,则表示“无任何”的任何负值。
  3. 除了int [](或int [] [])之外,还可以使用一些其他数据结构来指示数组值是否为“none of them”。 (BiList可能是一种可能性。)
  4. 使用链接列表来存储行,即您根本不存储“无任何”。
  5. 这些替代方案各有其缺点,应该使用一些OO编程来使它们的处理更容易,即,应该使用get和set方法以及属性isNoneOfThem来编写类SparseArray。

答案 2 :(得分:0)

每当您不希望打印您的号码时,只需将其替换为您不需要存储的号码,例如NaN或极大数字(0xFFFFFFFF)。在您的打印代码中,只需在打印前检查数字,如果存储的数字是您的空间持有者编号,则只需打印空格字符而不是数字。

更好的方法当然包括制作一个由布尔组成的新阵列,并使用它们来存储或者不应该打印一个数字。