android for循环与字符串[]数组

标签 android for-loop

我可以从 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 循环中吗? arrayList1arrayList2 的大小完全相同。我以为我可以使用 && 但没有快乐。我收到 '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/

相关文章:

android - Undefined 不是一个对象(评估 'Sn[e]' )

java - 有没有办法替换库类?

java - 如何使用 AlarmManager 在 AsyncTask 中下载失败时重试

java - 显示无尽的先前对象 recyclerView

android - ConstraintLayout 内的 Wrap_content View 延伸到屏幕外

C程序打印100到1000之间的数字,数字之和为20

ios - 基于引用子文件夹创建唯一数组

python - 我必须按周期更改什么?

c - 如何计算字符串 C 程序中的单词和标点符号?

c - 通过循环获取链表的值