2012-04-09 127 views
-1

如何评估java变量? 我有几根弦 字符串Q1,Q2,Q3,Q4,Q5如何评估变量

for(i=1;i1<=5;i++){ 
//evaluate the value of q1,q2,q3,q4,q5 
system.out.println(q+i); //should print q1,q2,q3,q4,q5 values concurrently 
} 

请帮助我。

+0

这不会工作..你是什么意思通过评估变量? – vidit 2012-04-09 18:45:27

+1

你是什么意思“同时打印值?” – 2012-04-09 18:45:42

+0

如果这是作业,你可以添加一个“作业”标签到你的问题 – 2012-04-09 18:46:37

回答

0

您可以使用java反射检查类中定义的字段。

例如Class.getField(String)

6

使用数组:

String[] q = {q1, q2, q3, q4, q5}; 
for (String s : q) 
    System.out.println(s); 
+0

我第二个答案,但老实说,用户不清楚他/她的意图。你试图连接一个字符串,把一个整数的字符串表示转换为一个整数然后把它与我... – Andy 2012-04-09 18:52:07

+0

这似乎确实是用户想要的东西 – Kevin 2012-04-09 19:03:04

0

此代码不能编译,您尝试打印有一个变量q的值,用i的值增加什么。没有q,你不想要我的价值。

改为使用Eugene Retunsky的解决方案。

0

看来你正在试图找到一个Java相当于eval函数JavaScript
如果是的话,在using eval in Java的答案可能对您有所帮助。

0

我相信他指的是flash的actionscript和javascript的eval函数。

有了它,你可以做这样的事情

for (i = 1; i <= 4; i++){ 
    eval("func" + i + "()"); 
} 

这将调用func1的(),FUNC2(),FUNC3(),FUNC4()。同样,你可以用字符串变量来做到这一点

你不能在Java中这样做,如果你觉得你必须用for循环打印这些单独的变量,那么你最好的选择是首先将它们放入一个数组中Eugene's answer

编辑: 我打了我的答案,没有注意到Ravinder的答案。感谢您的参考。我以前从未使用过ScriptEngine,因此必须检查它。