2012-03-08 78 views
-4

我正在开发一个android应用程序,我需要在运行时创建一些变量。运行时创建变量

我试试这个...

for (int i = 0; i < 10; i++) { 
    String var+i = "number is: " + i; 
} 

我想我可以设置变量的名称是这样的(VAR + I),但这是不允许因为算术符号不是在变量名允许。

有没有办法做到这一点,我想在运行时创建一些变量。

+0

我想,如果我们知道你与那些创建的变量做什么,我们也许能帮助你更好。可能有更好的选择,而不是试图创建变量。 – dymmeh 2012-03-08 16:31:30

+6

我有这种轻微的感觉,它是数组,你正在寻找。另外一个基本的Java教程是非常值得推荐的。 – 2012-03-08 16:33:10

+0

实际上,我有10个不同值的字符串变量。所以我认为,如果我创建一个变量并在运行时重命名它,并且更改它的值并将其存储到ArrayList以供将来使用。 如果有,那么请告诉我怎么做? – Pari 2012-03-08 16:38:38

回答

1

你不能创建一个这样的变量名。如果你只关心能够生成一堆变量而不关心名称的实际名称,那么就考虑一个足够大的数组,以供你认为你想要的最多,或者一个Vector,如果你只是不知道多少。

+0

其实我是新的android和我不知道向量。 – Pari 2012-03-08 17:08:21

0

另一种选择可能是使用String []数组。你不清楚你想如何使用这些变量,但是你可以使用数组来实现几乎相同的功能。

例如,var1 = number is 1

,而不是你需要做的

array[1] = number is 1 
0

不,它不是可能的。然而,你可以去阵列..

​​
+0

我想在运行时更改变量名称,并以这种方式只将字符串值存储到数组中。 – Pari 2012-03-08 16:56:11

2

试试这个:

String[] strings = null; 
for(int i = 0 ; i < 10 ; i++) 
strings[i] = "Number is " + i; 

您也可以使用ArrayList

+0

您正在i索引处存储字符串。如果我这样做,那么我该如何改变我的变量名称,我可以做什么像斯汀弦[1];? – Pari 2012-03-08 16:49:48

+1

我想你需要向我们解释*为什么*你想改变一个变量的名字?你认为这将实现什么?一个值必须进入具有硬编码名称的变量,或者进入具有硬编码名称的容器(但该容器的元素没有名称)。我相信你只是希望能够在循环中存储许多不同的字符串,而不必为每个字符串赋予一个硬编码的名字......这就是[固定]数组,ArrayLists或Vectors所用于的 - 存储许多项目一种类型但每种都有自己的价值。 – JTeagle 2012-03-08 21:16:30