求助,转换字符串,什么时间需要用tostring(),什么时间需要new String(),如以下代码需要new,最好是能举个例子class Udpreceive{
public static void main(String[] args) throws Exception {
DatagramSocket dgs=new DatagramSocket(10000);
byte[] bt=new byte[1024];
DatagramPacket dgp=new DatagramPacket(bt, bt.length);
dgs.receive(dgp);
String ip=dgp.getAddress().getHostAddress();
String data=new String(dgp.getData(),0,dgp.getLength());
int port=dgp.getPort();
System.out.println("ip:"+ip+"-------data:"+data+"----port:"+port);

}
}

解决方案 »

  1.   

    当你需要用到两个以上的构造参数时,就需要new。
    非常不赞成如下这么用String s = new String("s");这里其实创建了2个对象
      

  2.   

    如果不适用toString,那么你打印出来的就有可能只是一个地址(如果是对象的haunted)。
    可以自己做个试验试试
    toString,如其意思,就是转成String让人可以看
      

  3.   

    toString 和 new String 有关系吗?完全不搭架的
      

  4.   

    toString()的前提是他是一个对象,即对象早已存在,因为是继承的object的方法,每个对象都可以toString,从而转换成String的形式,方便使用。而new String  是new 一个String对象,自己创建。可以随便使用,不过不建议String s = new String("11");
      

  5.   

    能不用new String()的时候都不用new String()
      

  6.   

    个人看法,一般把数组(特别是byte数组),转成字符串时,要用new.
      

  7.   

    new String()一般使用字符转码的时候
    toString()将对象打印的时候使用
      

  8.   

    new String()一般使用字符转码的时候
    toString()将对象打印的时候使用