我可以从 string [] array
中创建单独的 strings
,例如:
//first, make stringArray1 the same size as arrayList1
stringArray1 = new String[arrayList1.size()];
//stringArray1 will contain all the values in arrayList1
stringArray1 = arraylist1.toArray(stringArray1);
//for each value in stringArray1 make it into an individual string,
//called string1
for(String string1: stringArray1 )
{
System.out.println("string1 is " + string1);
}
你能告诉我如何将另一个字符串从 string [] array
转换到同一个 for
循环中吗? arrayList1
和 arrayList2
的大小完全相同。我以为我可以使用 &&
但没有快乐。我收到 'Expression expected'
。还是我需要有两个不同的 for
循环?
这是我的:
//first, make stringArray1 the same size as arrayList1
stringArray1 = new String[arrayList1.size()];
//second, make stringArray2 the same size as arrayList2
stringArray2 = new String[arrayList2.size()];
//stringArray1 will contain all the values in arrayList1
stringArray1 = arraylist1.toArray(stringArray1);
//stringArray2 will contain all the values in arrayList2
stringArray2 = arraylist2.toArray(stringArray2);
//for each value in stringArray1 make it into an individual string,
//called string1. Do likewise for string2
for(String string1: stringArray1 && String string2: stringArray2)
{
System.out.println("string1 is " + string1);
System.out.println("string2 is " + string2);
}
最佳答案
您不能使用增强的 for 循环(foreach 循环)同时迭代两个数组。这是因为这样的 foreach 循环在内部使用 Iterator
实例来迭代元素。
您有多种选择:
使用简单的
for
循环:for (int i = 0; i < arr1.length; i++) { System.out.println(arr1[i]); System.out.println(arr2[i]); }
当然,你必须保证
arr1.length
不大于arr2.length
,否则会抛出一个ArrayIndexOutOfBoundsException
。要在其中一个数组耗尽时静默停止,您可以只计算两个数组中的最低值:
for (int i = 0; i < Math.min(arr1.length, arr2.length); i++) { System.out.println(arr1[i]); System.out.println(arr2[i]); } Alternatively, you can use iterators: ```java Iterator<T> it1 = arr1.iterator(); Iterator<U> it2 = arr2.iterator(); while (it1.hasNext() && it2.hasNext()) { // Do something with it1.next() // Do something with it2.next() }
您还可以更改生成这两个数组的代码,并确保它使用单个
List
以及包含第一个元素的封装对象数组和第二个数组中的相应数组。
关于android for循环与字符串[]数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46050268/