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

Java 如何将2数组的第一个元素组合成字符串数组?,java,android,arrays,Java,Android,Arrays,这是将ArrayList更改为字符串数组 String quantityArray[] = GetStringArray(quantity); String foodItemArray[] = GetStringArray(fooditems); int n1=fooditems.size(); int n2=数量.大小(); 对于(int s=0;s您需要确保分配了totalFood数组 数组本身就是Java中的对象s 例如: public static String[] G

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

    String quantityArray[] = GetStringArray(quantity);
    String foodItemArray[] = GetStringArray(fooditems);
int n1=fooditems.size();
int n2=数量.大小();

对于(int s=0;s您需要确保分配了
totalFood
数组

数组本身就是Java中的
对象
s

例如:

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;
}
这是因为根据您看到的错误,
totalFood
似乎是
null
。您需要为要存储在中的串联产生的
字符串
s分配一些空间(
n1
引用,对于上面的示例更准确些)。您可以查看相应的Java教程

还要确保
n1
等于
n2
,这也应该等于
totalFood
数组的大小,以避免超出循环中的任何数组

最后,有两种简便的方法可以完成您在
GetStringArray
方法中所做的工作。您可以这样使用它:

totalFood = new String[n1];
使用
toArray
方法似乎与问题无关,但我只是为了完整起见才提到它。

公共静态字符串[]GetStringArray(ArrayList arr){
String quantityArray[] = quantity.toArray(new String[quantity.size()]);
字符串str[]=新字符串[arr.size()]; 对于(int j=0;js!=null).toArray(字符串[]:::新建); }
您在哪里分配
totalFood
数组?您是如何初始化totalFoods数组的?我在代码中看不到这一点。是的,totalFood是个问题,所以在初始化后我使它工作了谢谢:)
String quantityArray[] = quantity.toArray(new String[quantity.size()]);
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);
    }