2014-11-20 4 views
0

Я пытаюсь получить строку для чтения файла, которая затем сохраняет все цифры в массиве, которые могут быть вызваны один за другим в другом цикле. Назовите массив digitStorage пожалуйста: D Вот мой текущий бит кода:Хранение в массиве

for (int i = 0; i <= 40000 ; i++) {    
    String digit; 
    if (i <=39998) 
     digit = pictureFile.substring(i, i+1); 
    else 
     digit = pictureFile.substring(39998,39999); 

Мой вопрос:

Что делать, как я мог бы сделать это, как бы я его читать каждую цифру (одиночные целые числа) 1 на 1, а затем сохраняйте их 1 на 1 в массиве, который может быть позже вызван, каждый номер соответствует цвету, который будет использоваться для эскиза изображения в графическом окне (в файле содержится 40 000 однозначных целых чисел что я уже разработал, как читать)?

Cheers.

+2

Хорошо, и в чем ваш вопрос? – Jesper

+0

Каким образом 'pitureFile' состоит из цифр? Кроме того, какова цель констант в вашем цикле? –

+0

Я предполагаю, что он хочет узнать, как хранить цифровую строку в массиве вне цикла for, чтобы затем он мог повторно использовать этот массив? –

ответ

0

Как вы уже упоминали, вы уже прочитали файл и хотите сохранить его в каком-то массиве. Ниже будет работать код.

List<String> list = new ArrayList<String>(); 
for (int i = 0; i <= 40000 ; i++) {    
    String digit; 
    if (i <=39998) 
     list.add(pictureFile.substring(i, i+1)); 
    else 
     list.add(pictureFile.substring(39998,39999)); 
} 

Если вам нужен список целых чисел, то мы.

List<Integer> list = new ArrayList<Integer>(); 
for (int i = 0; i <= 40000 ; i++) {    
    String digit; 
    if (i <=39998) 
     list.add(Integer.parseInt(pictureFile.substring(i, i+1))); 
    else 
     list.add(Integer.parseInt(pictureFile.substring(39998,39999))); 
} 

После этого можно выполнить итерацию через list.

0

Ваш вопрос не очень понятно, но я считаю, что это нужно сделать, это:

int [] digitStorage = new int[40000]; 
for (int i = 0; i <= 40000 ; i++) {    
if (i <=39998) 
    int[i] = Integer.parseInt(pictureFile.substring(i, i+1)); 
else 
    int[i] = Integer.parseInt(pictureFile.substring(39998,39999)); 
+0

Я не уверен, что понимаю, чего вы хотите. Пожалуйста, дополните. –

+0

Это обычный массив. Просто, например, int digit = digitStorage [index]; –

0

на основе ваших комментариев и вопросов, самое простое решение, я могу думать о том, чтобы использовать String.toCharArray() и Character.digit(char, int) как

char[] chars = pictureFile.toCharArray(); 
int[] digitStorage = new int[chars.length]; 
for (int i = 0; i < chars.length; i++) { 
    digitStorage[i] = Character.digit(chars[i], 10); 
} 
System.out.println(Arrays.toString(digitStorage)); 
Смежные вопросы