2016-03-27 87 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找到。