使用for循环创建变量

时间:2015-09-29 09:14:20

标签: java string loops for-loop

我有一个包含四个不同位置的String,用逗号分隔。我将长字符串拆分为四个部分,并将位置分配给location个变量。目前这很简单(见下文)。

int noOfLocations = counter + 1;

//Splits the long input location string into the four locations.
String[] locations = inputLocation.split(",");
String location1 = locations[0];
String location2 = locations[1];
String location3 = locations[2];
String location4 = locations[3];

但是,我希望能够输入任意数量的位置,并使用for循环为每个位置分配变量。

我觉得这是一件相当简单的事情,但我似乎无法正确编码。我有一个计数器,它计算逗号的数量,并在该数字上加一个以查找位置数。

基本上我想说的是:

String[] locations = inputLocation.split(",");
for i in range noOfLocations {
    String location(i) = locations[i];
}

写这样的东西的正确语法是什么?

3 个答案:

答案 0 :(得分:5)

你想创建编程变量(通过索引访问),你想要任意多次。这正是您已经使用locations数组所做的事情。如您所知,您可以通过索引访问此数组的单个变量。 locations[i]

您需要做的就是致电

String[] locations = inputLocation.split(",");

您将获得变量列表(数组)。你也不需要任何结构,如:

int noOfLocations = counter + 1;

因为这是通过调用locations.length

获得的

答案 1 :(得分:2)

动态创建变量几乎是不可能的。它们需要在源代码中手动编写(除非你使用一些神奇的字节码操纵器)。

但是已经有一个数组在手位置并创建一个动态变量包含相同的信息,这很有意义。

    String[] locations = inputLocation.split(",");
    for (int i = 0; i < locations.length; i++) {
        System.out.println(locations[i]);
    }

查看上面的循环,您无需创建,您可以直接访问它们。

答案 2 :(得分:2)

你已经掌握了数组中的所有内容。不需要任何其他变量。

String[] locations = inputLocation.split(",");
System.out.println("Found " + locations.length + " locations");

// for example
System.out.println("3. location is " + location[2]);

如果您需要具有相同内容的新数组,可以像这样复制原始数组:

String[] locationsCopy = new String[locations.length];
System.arraycopy(locations, 0, locationsCopy, 0, locations.length);