2016-03-27 80 views
-1

我正在導入一個.txt文件以用於運行我的程序的某些部分。某個部分需要操作布爾變量。但是,我使用loadStrings()將文本解釋爲字符串,其中各行稱爲lines []。我有一個變量的名稱作爲一個字符串,並必須引用變量本身。不幸的是,我一直無法弄清楚如何做到這一點。處理:通過字符串名稱操縱變量

boolean choice1 = false; 

// lines[counter+2] is "choice1" 
if (lines[counter+2] = false) { 
    println("statement is false"); 
    counter += 4; 
    } 

顯然,上述語句不工作,也不:

if (boolean(lines[counter+2]) = false) { 

,因爲它的錯誤。 此外,

if (boolean(lines[counter+2]) == false) { 

不是可行的解決方案作爲除「真」其他布爾使用時()的任何字是假的,因此,上述給出假陽性(原諒雙關語)。

如果在java編碼中有同樣的問題的解決方案,我也很樂意看到這一點。

P.S.如果您有解決方案,是否有辦法不僅僅是通過名稱來引用變量,還要改變它?例如:

boolean(lines[counter+2]) = false; 

lines[counter+2] = false; 

顯然,以上是不正確的,但這一想法。

回答

0

你不能那樣做。

你可以使用StringHashMap一個值Boolean值雖然:

HashMap<String, Boolean> variableMap = new HashMap<String, Boolean>(); 
variableMap.put("myVariable", true); //set the value 
boolean check = variableMap.get("myVariable"); //get the value 
println(check); 
variableMap.put("myVariable", false); //change the value 
boolean checkAgain = variableMap.get("myVariable"); //get the new value 
println(checkAgain); 

更多信息可在the Processing reference找到。