【问题标题】:Automated Number String conversion in java constructorjava构造函数中的自动数字字符串转换
【发布时间】:2017-10-08 21:16:42
【问题描述】:

我正在尝试定义一个表达式类,正如其名称所暗示的那样,它可以表示任何数学表达式。它接受一个字符串并使用其信息将表达式存储在其字段中。

所以它的构造函数应该是这样的:

        public Expression(String expr)
        {
             SomeOperation(expr);
        }            

当我创建这个类的实例时,我希望能够给它的构造函数任何类型的变量或其序列,并让构造函数将其转换为字符串。 例如,我希望能够写:

Expression e1 = new Expression(aNumber*x + anInt*y) 

而不是

Expression e1 = new Expression("" + aNumber+"*x+" + anInt+"*y+")

其中 x 和 y 是声明或初始化的变量,而是要转换为字符串的符号(已声明和初始化 aNumber 和 anInt。)

所以我的问题是:我可以自动将构造函数中的数字和字符串连接成一个易于使用的过程吗,如上所示?

提前致谢!

【问题讨论】:

    标签: java bluej


    【解决方案1】:

    您必须实际实现它,例如:

    public class Expression {
        private final String expr;
        public Expression(Object... args){
            this.expr = Arrays.asList(args).stream().map(Object::toString).collect(Collectors.joining());
        }
        public String getExpr() {
            return expr;
        }
    }
    

    然后:

    new Expression(aNumber, "*x + ", anInt, "*y");
    

    【讨论】:

      猜你喜欢
      • 2014-07-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-09-07
      • 2016-08-16
      • 2021-02-10
      • 2011-12-31
      • 1970-01-01
      相关资源
      最近更新 更多