有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java构造函数中的bluej自动数字字符串转换

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

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

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

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

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

而不是

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

其中x和y不是声明或初始化的变量,而是要转换为字符串的符号(声明并初始化了一个数和一个数)

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

提前谢谢


共 (1) 个答案

  1. # 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");