Java - 循环遍历多个数组(String与“数组类型”不匹配)

时间:2017-08-09 09:19:09

标签: java arrays variables

static String[] E1 = {"filex1", "file333y", "readme"};

我有五个阵列(E1,E2,E3,E4和E5),我在上面定义。在这些数组中有文件名。我想分别遍历每个E *数组并使用该文件。

String eb = "E"+i;

是我尝试循环它们,但是当我用

在另一个循环中调用它时
eb[j]

它让我感觉像“eb是一个字符串,但这里需要数组类型”......

for( int i = 0; i < ENum - 1; i++)
{
  String eb = "E"+i;
  for( int j = 0; j < eb.length - 1; j++)
  {
    String tempFile = Path4Files+eb[j]+".txt";
  }
}

5 个答案:

答案 0 :(得分:3)

创建一个多维数组:

static String[][] E = {{"filex1", "file333y", "readme"}, {...}, {...}, {...}, {...}};

答案 1 :(得分:3)

正如@Andres在他的回答中所说,唯一的方法是反思,尽管只针对成员变量。

一种解决方案是将数组添加到另一个数组,然后循环遍历它。

static String[] E1 = {"filex1", "file333y", "readme"};
//...
static String[][] es = {E1, E...};

答案 2 :(得分:2)

import java.util.Arrays;
import java.util.List;

public class Eggs {
    static String[] E1 = {"filex1", "file333y", "readme"};
    static String[] E2 = {"aaa", "bbb", "ccc"};
    static String[] E3 = {"ddd", "eee", "fff"};
    static String[] E4 = {"ggg", "hhh", "iii"};
    static String[] E5 = {"jjj", "kkk", "lll"};
    public static void main(String[] args){
        List<String[]> myList = Arrays.asList(E1,E2,E3,E4,E5);
        for(String[] myArray: myList){
            for(String myString: myArray){
                System.out.println(myString);
            }
        }
    }        
}

答案 3 :(得分:1)

你可以这样做:

String[] E1 = {"filex1", "file333y", "readme"};
String[] E2 = {"filex21"};
for (String[] files : new String[][] {E1, E2})
{
  for(String fileName : files)
  {
    String tempFile = Path4Files + e[j] + ".txt";
  }
}

答案 4 :(得分:0)

要通过从字符串中组合其名称来访问Java中的变量,您需要使用reflection。此外,它仅适用于成员变量,而不适用于自动变量。