繁体   English   中英

如何将 2 个数组的第一个元素组合成一个字符串数组?

[英]How do I combine the first element of 2 array together into a string array?

    String quantityArray[] = GetStringArray(quantity);
    String foodItemArray[] = GetStringArray(fooditems);

这是从 ArrayList 更改为字符串数组

    int n1 = fooditems.size();
    int n2 = quantity.size();

    for(int s = 0; s<n1;s++){

        totalFood[s] = quantityArray[s] + foodItemArray[s];
    }

我无法让这个 totalFood[] function 工作,因为它只会让我的应用程序崩溃

public static String[] GetStringArray(ArrayList<String> arr) {
    // declaration and initialise String Array
    String str[] = new String[arr.size()];
    // ArrayList to Array Conversion
    for (int j = 0; j < arr.size(); j++) {
        // Assign each value to String array
        str[j] = arr.get(j);
    }
    return str;
}

弹出的错误是(尝试写入null数组)

您需要确保分配了totalFood数组。

Arrays 本身就是Object中的 Object 。

例如:

totalFood = new String[n1];

这是因为根据您看到的错误, totalFood似乎是null 您需要为要存储的连接产生的String分配一些空间(对于上面的示例, n1引用是精确的)。 您可以在此处查看相应的 Java 教程。

还要确保n1等于n2 ,它也应该等于totalFood数组的大小,以免在循环中超出它们中的任何一个。

最后,有 2 个方便的Collection#toArray方法可以完成您在GetStringArray方法中所做的工作。 例如,您可以像这样使用它:

String quantityArray[] = quantity.toArray(new String[quantity.size()]);

使用toArray方法似乎与问题无关,但为了完整起见,我只是提一下。

public static String[] GetStringArray(ArrayList<String> arr) {
        String str[] = new String[arr.size()];
        for (int j = 0; j < arr.size(); j++) {
            str[j] = arr.get(j);
        }
        return Arrays.stream(str).filter(s -> s!=null).toArray(String[]::new);
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM