Java 删除某些字符串的toString方法

Java 删除某些字符串的toString方法,java,Java,如果无法看到上面的图像: 上面左边的图像是jar1 stone==null时应该打印的图像,而右边是我的程序打印的图像 我试图创建一个toString方法,这样当jar1的stone in class ground为==null时,它就不会在括号“[”“]”之间打印任何内容 因此,在下面的代码中,如果==null,我可以去掉stones name,但不能去掉“#”及其权重,它在上面打印[#0]而不是仅仅[] 我该如何处理这个toString问题 我尝试在getName()方法中使用if语句,其中

如果无法看到上面的图像:

上面左边的图像是jar1 stone==null时应该打印的图像,而右边是我的程序打印的图像

我试图创建一个toString方法,这样当jar1的stone in class ground为==null时,它就不会在括号“[”“]”之间打印任何内容 因此,在下面的代码中,如果==null,我可以去掉stones name,但不能去掉“#”及其权重,它在上面打印[#0]而不是仅仅[]

我该如何处理这个toString问题

我尝试在getName()方法中使用if语句,其中if stone==null返回“”;这在我的头脑中是有意义的,但对于其他返回整数的方法,这对我来说真的没有意义


公共类场地
{
私人罐1;
私人罐子2个;
私家罐3个;
私人玩家;
私人胸;
/**
*类Ground对象的构造函数
*/
公共场所
{
player=新玩家();
jar1=新罐子(1,新石头());
jar2=新罐子(2,新石头());
jar3=新罐子(3,新石头());
胸部=新胸部();
}
公共布尔值(){
if(胸部.jar1.getWeight()+胸部.jar2.getWeight()*胸部.jar3.getWeight()==胸部.combination)
返回true;
其他的
返回false;
}
公共字符串toString()
{
返回player.getName()+“[]”“+”(“+player.getPosition()+”)+“[”+jar1.getName()+“#”+jar1.getWeight()+”]“+”(“+jar1.getPosition()+”)
+“[“+jar2.getName()+”#“+jar2.getWeight()+”]“+”(“+jar2.getPosition()+”)
+“[“+jar3.getName()+”#“+jar3.getWeight()+”]“+”(“+jar3.getPosition()+”)”
“/”+cost.composition+“\\\”+”(“+cost.getPosition()+”);
}
}
公共类Jar
{
私人职位;
私人石材;
公共Jar()
{
位置=0;
斯通=零;
}
公用坛子(内部初始位置,石头)
{
位置=初始位置;
这个石头=石头;
}
公共无效移动(整数距离)
{
位置=位置+距离;
}
公共void moveTo(Jar-Jar)
{
石头=石头;
斯通=零;
}
公共整数getWeight(){
if(stone==null){
返回0;
}
返回stone.getWeight();
}
公共字符串getName(){
if(stone==null){
返回“”;
}
return stone.getName();
}
public int getPosition(){
返回位置;
}
}

您可能也希望
Jar
类中有一个
toString()
。如果
stone==null,则返回
,否则返回
name\weight
。然后您可以使用
Jar.toString()
Ground.toString()

该图像不可读。请不要将输出作为图像发布。将文本复制粘贴到问题中。在不相关的注释中,考虑使用:创建一个具有零重量和名称<代码> >“<代码> >的石头,并使用它代替<代码> null <代码>。那么你就不必一直检查null了。