try {
BufferedReader rd = new BufferedReader(new FileReader("tommy.txt"));
String text;
while ((text = rd.readLine()) != null) {
println(text);
int i = Integer.parseInt(text);
GRect block = new GRect(i, i, i, i);
add(block);
}
} catch (IOException e) {
e.printStackTrace();
}
所以我有一个.txt,我用Strings导入,如“SIZE / 10”,SIZE是一个在代码中定义的常量。我知道如何用整数计算(所以10),但我不知道如何“转换”变量名。
感谢您的帮助。
答案 0 :(得分:0)
与https://stackoverflow.com/users/1682559/kevin-cruijssen注释类似 - 如果这些注释真正是常量,并且您知道在编写代码时它们会是什么,那么问题并不困难。我建议像这样使用枚举:
public enum ConstantsEnum{
SIZE(20)/*...*/;
private int value;
ConstantsEnum(int value){
this.value = value;
}
public int getByName(String name){
return ConstantsEnum.valueOf(name).getValue();
}
public int getValue(){
return value;
}
}
有了这个,每当你读到一个字符串常量调用ConstantsEnum.getByName(name)
并且瞧,你就有了自己的价值。您可以删除枚举想法并创建一个简单的Map<String,Integer>
(或<String,Whatever_your_values_will_be>
)来存储和获取动态名称的值。
困难的部分可能是正在读取文件以正确获取并将每个名称转换为它的值 - 但这取决于您未提及的文件结构和变量名称。可能只需要将所有变量名称转换为值的文件内容上的一系列简单替换就足够了。