2012-04-09 126 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,因此必須檢查它。