2015-11-14 5 views
0

Я печатаю матрицу, состоящую из чисел, и я использую массив 2d для хранения чисел. Я хочу заменить некоторые из чисел пробелом. Следующее не работает, поскольку A является целым числом.Замена целого числа пробелом

A[randomNum1][randomNum2] = ""; 

Casting также не представляется возможным

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

Как я могу это сделать?

+0

Вопрос * почему * вы хотите это сделать. Как вы это описываете, это невозможно, но если вы объясните, почему, возможно, лучшее решение может быть предложено. – RealSkeptic

+0

if 'A [] []' является массивом 'integer', как вы предполагаете, чтобы положить в него значения' String'? – thegauravmahawar

+0

Кроме того, '' '' не является пространством – BackSlash

ответ

2

Если A - массив int[][], это невозможно. Если вы используете массив Integer[][], вы можете сохранить null вместо пустого String в своем массиве (чтобы отметить отсутствие значения). Затем, когда вы печатаете массив, вы можете напечатать пустое пространство, когда вы встретите null.

0

Типы данных, такие как int, определяют набор целых чисел и ничего больше. Реальность, однако, часто требует от нас различать «одну из этих ценностей» и «ни одного из них». Термин «разреженный массив» иногда используется для обозначения массива, в котором отсутствуют несколько (многих) элементов.

У вас есть несколько вариантов.

  1. Использовать Integer (как предложено Эраном), а затем у вас есть одно дополнительное значение, т. Е. Null, для представления «ни одного из них».
  2. Отложите одно из значений int, например Integer.MIN_VALUE, или, если значения, которые вы действительно должны хранить, неотрицательны, любое отрицательное значение для представления «ни одного из них».
  3. В дополнение к int [] (или int [] []) используйте другую структуру данных, указывающую, является ли значение массива «ни одним из них». (Возможно, BLList может быть одной возможностью.)
  4. Используйте связанный список для хранения строк, т. Е. Вы не храните «ни одного из них» вообще.

Эти альтернативы имеют свои недостатки, и немного программирования OO должны быть использованы для их обработки легче, то есть класс разрежённый массив должен быть написан с Досталось и установить методы и свойства, isNoneOfThem.

0

Всякий раз, когда вы не хотите, чтобы ваш номер печатался, просто замените его на номер, который вам никогда не понадобится хранить, например, NaN или очень большие цифры (0xFFFFFFFF). В вашем коде для печати просто проверьте номера перед печатью, и если номер хранится в вашем номере держателя пространства, просто напечатайте пробел вместо номера.

Лучший способ, конечно, включать в себя создание нового массива, состоящего из булевых элементов, и использование их для хранения данных, которое должно быть напечатано, или нет.

Смежные вопросы