【问题标题】:How do I use string variable names in Math equations?如何在数学方程式中使用字符串变量名称?
【发布时间】:2016-06-14 02:23:26
【问题描述】:
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)进行计算,但我不确定如何“转换”变量名称。

感谢您的帮助。

【问题讨论】:

  • 这将非常困难;您要么需要编写自己的解释器,要么可以使用 JavaScript 引擎来解释它。
  • 我会使用像 DTO 这样的东西,你有 String fieldObject value。在这种情况下,value 将是 10,而在这种情况下,field 将是 "SIZE"。当然,DTO 会有一个 getter 和 setter 用于它们。

标签: java string variables int


【解决方案1】:

类似于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>)来存储和获取动态名称的值。

困难的部分可能是读取文件以正确获取每个名称并将其转换为它的值 - 但这取决于您未提及的文件结构和变量名称。可能对文件内容进行一系列简单的 replaceAlls 将所有变量名转换为值就足够了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-12
    • 1970-01-01
    相关资源
    最近更新 更多