将double转换为字符串并将其返回给main

时间:2019-05-15 09:17:31

标签: java tostring

我的家庭作业的一部分是将三个double变量转换为一个String并从main方法中打印出来。我创建了一个单独的类,在其中尝试创建字符串。当我尝试从main方法打印字符串时,我不知道该怎么做。

主要班级

public static void main(String[] args) {
    System.out.println(Point.toString());  
}

public class Point {
    public String toString(Double xVal, Double yVal, Double zVal){
        String p= Double.toString(this.xVal) + ":" + Double.toString(this.yVal) + 
":" + Double.toString(this.zVal);
        return p; 
    }
}

这只是我代码的一部分,有人可以在我尝试打印字符串的那部分帮助我吗?

4 个答案:

答案 0 :(得分:3)

似乎您试图创建某种实用程序类,所以...

首先,您需要制作用于打印Point static 中的值的方法,因此无需在以下位置创建Point的实例叫它。

第二,我强烈建议在类Point更改方法名称,因为已经从Object继承了toString方法。这可能会引起混乱,因为继承方法的目标与您为此toString方法创建的目标不同。

此外,在方法内部要小心,以使用接收到的值作为参数而不是(缺少)实例属性。也就是说,使用值xValyValzVal,而不是this.xValthis.yValthis.zVal

所以,这将是这种方式:

public class Point {
    // changed from `toString` to `convertToString`, use the name which fits better your needs, except `toString`
    public static String convertToString(Double xVal, Double yVal, Double zVal) {
        // use `xVal`, not `this.xVal` and the same for the other variables
        String p = Double.toString(xVal) + ":" + Double.toString(yVal) + ":" + Double.toString(zVal);
        return p;
    }
}

然后在您的主班:

public class Main {
    public static void main(String[] args) {
        System.out.println(Point.convertToString(1d, 2d, 3d)); // you can replace this sample values with the real ones
    }
}

答案 1 :(得分:1)

当然,有很多方法可以执行此操作,但是使用toString的“正确”方法是设置xyz的值类的属性(以及(可选的)那些属性的构造函数,获取器和设置器),并让toString打印当前实例的这些属性的值

public class Point {

    Double xVal, yVal, zVal;

    public Point(Double x, Double y, Double z) {
        this.xVal = x;
        this.yVal = y;
        this.zVal = z;
    }

    public String toString() {
        return String.format("%s:%s:%s", this.xVal, this.yVal, this.zVal);
    }
}

在这里,String.format("%s:%s:%s", ...)是使用三个数字来format the string的一种更好的方法,但是您也可以保留自己的数字。第n个%s将自动将该位置的参数转换为字符串并将其插入该位置。您也可以使用%.2f用于具有更多选项的特定浮点格式。

您可以使用给定的坐标创建Point类的新实例并进行打印。此处,您不必显式调用toString,因为println尝试将其参数转换为字符串时会自动调用它。

public static void main(String[] args) {
    Point p = new Point(1.1, 2.2, 3.3);
    System.out.println(p);
}

答案 2 :(得分:0)

您需要创建Point类的对象,然后以三个double值作为参数调用toString方法,就像您在Point类中定义的一样。

   public static void main(String[] args) {
    Point p = new Point();

    System.out.println(p.toString(2.0,3.5,4.6));  
    }

答案 3 :(得分:0)

我认为正确的方法是使用其参数创建一个新点并覆盖继承的toString方法:

public class Point{
    Double xVal; Double yVal; Double zVal;
    void Point(Double xVal, Double yVal, Double zVal)
    {
        this.xVal = xVal;
        this.yVal = yVal;
        this.zVal = zVal;
    }


@Override
public String toString(){
    String p= Double.toString(this.xVal) + ":" + Double.toString(this.yVal) +
            ":" + Double.toString(this.zVal);
    return p;
}

}

主要的:

public static void main(String[] args) {


    Point p = new Point(1.3,2.0,.30);
    System.out.println(p.toString());
}