2016-10-02 82 views
1

这段代码应该返回什么?我只是与StringBuilder s一起工作,我不知道如何才能返回StringBuilder对象。返回stringbuilder对象

public String toProtocolString() { 
    StringBuilder sb = new StringBuilder(); 
    sb.append(Integer.toString(points.length)).append(' '); 
    sb.append(Integer.toString(points[0].length)).append(' '); 
    for (int[] x : points) 
     for (int y : x) 
      sb.append(Integer.toString(y)).append(' '); 
    //remove extra space at end 
    sb.deleteCharAt(sb.length()-1); 
    return ??????; 
+0

做一些搜索请 –

+0

'sb.append(Integer.toString ',真的吗?请参阅https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html#append-int-您还应该考虑对if/for等使用大括号,并始终使用它们 – 2016-10-02 11:48:55

回答

0

要返回StringBuilder对象,你需要你的函数签名的返回类型更改从StringStringBuilder。但在大多数情况下,您不希望这样做,因为您需要在被调用方法中使用另一个StringBuilder实例。因此,一个优雅的解决方案是,返回类型的变量String

为了返回字符串类型的变量只是这样做

return sb.toString();

1

如果您需要返回String,为你的方法建议的签名,你应该

return sb.toString(); 

否则,返回类型更改为StringBuilder

return sb; 
0

返回字符串使用toString()方法的stringbuilder的值。更多关于它是doc

return sb.toString();