我有一个包含四个不同位置的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];
}
写这样的东西的正确语法是什么?
答案 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);