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 文件,我用“SIZE/10”之类的字符串导入,其中 SIZE 是代码中定义的常量。我知道如何使用整数(即 10)进行计算,但我不确定如何“转换”变量名称。
感谢您的帮助。
最佳答案
类似于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)
瞧,你有你的值(value)。您可以放弃枚举的想法并创建一个简单的 Map<String,Integer>
(或 <String,Whatever_your_values_will_be>
)来存储和获取动态名称的值。
困难的部分可能是读取文件以正确获取每个名称并将其转换为它的值 - 但这将取决于您没有提到的文件结构和变量名称。可能对文件内容进行一系列简单的replaceAlls,将所有变量名称转换为值就足够了。
关于java - 如何在数学方程中使用字符串变量名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35726784/