Java 如何使toString()返回复杂对象?

Java 如何使toString()返回复杂对象?,java,string,tostring,Java,String,Tostring,我需要生成一个toString()函数,该函数为复杂对象Complex(3,2)返回字符串“3+2i” 这就是Iv所做的,但我得到了下面的错误,我不知道这意味着什么 从版本8开始,“this”仅允许作为receiver类型的参数名,它必须是第一个参数 public String toString() { String s = ("%f + %fi",this.real,this.imaginary); return s; } 有人能帮我解决我做错了什么吗?好吧,它不是Java

我需要生成一个toString()函数,该函数为复杂对象Complex(3,2)返回字符串“3+2i”

这就是Iv所做的,但我得到了下面的错误,我不知道这意味着什么

从版本8开始,“this”仅允许作为receiver类型的参数名,它必须是第一个参数

public String toString()
{
    String s = ("%f + %fi",this.real,this.imaginary);

    return s;
}

有人能帮我解决我做错了什么吗?

好吧,它不是Java。要格式化
字符串
,必须使用
String.format()


嗯,它不是Java。要格式化
字符串
,必须使用
String.format()


您可以从
toString()
方法返回任何
String
。唯一的问题是您必须
重写
toString()
方法。但是你尝试的方式是错误的。只能从
toString()

你可以试试这个

 String s = String.format("%f + %fi",this.real,this.imaginary);

您可以从
toString()
方法返回任何
String
。唯一的问题是您必须
重写
toString()
方法。但是你尝试的方式是错误的。只能从
toString()

你可以试试这个

 String s = String.format("%f + %fi",this.real,this.imaginary);

你认为
(“%f+%fi”,this.real,this.virtual)
应该做什么?@SotiriosDelimanolis我认为应该用构造函数中设置的对象实值和虚值替换%f。然后返回那个字符串。好吧,现在你怎么会这么想?@SotiriosDelimanolis,因为我知道%f是双精度类型的占位符。实型和虚型是双重类型。字符串
“%f”
与随机类中的随机场有什么关系?那是修辞。没有。您使用的语法无效。
字符串本身就是一个
字符串。它没有意义,没有占位符,什么都没有。你认为
(“%f+%fi”,this.real,this.virtual)
应该做什么?@SotiriosDelimanolis我认为应该用构造函数中设置的对象实值和虚值替换%f。然后返回那个字符串。好吧,现在你怎么会这么想?@SotiriosDelimanolis,因为我知道%f是双精度类型的占位符。实型和虚型是双重类型。字符串
“%f”
与随机类中的随机场有什么关系?那是修辞。没有。您使用的语法无效。
字符串本身就是一个
字符串。它没有意义,没有占位符,什么都没有。