存储在一个数组中

时间:2014-11-20 13:13:20

标签: java arrays for-loop storage

我正在尝试获取一个字符串来读取一个文件,然后将所有数字存储在一个数组中,该数组可以在另一个循环中逐个调用。将数组命名为digitStorage please: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地存储在一个稍后可以调用的数组中,每个数字对应一个用于在图形窗口中绘制图片的颜色(文件中有40,000个单位数整数,我已经计算出如何阅读)?

干杯。

3 个答案:

答案 0 :(得分: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 of Integer。

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

答案 1 :(得分: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));

答案 2 :(得分: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));