2014-09-29 31 views
0

我做了一个程序,一个数据发送到通过UDP客户端,但我得到的线路有很多空的空间出于某种原因获得一个符合很多空的空间

例子:

行1:威廉·莎士比亚3432绿街格林维尔450-122-3435

线路2:

你知不知道为什么我收到那些?东西告诉我它必须与buffer.length,但我不知道。

DatagramSocket socket1 = new DatagramSocket(); 
    InetAddress IP1 = msg.getAddress(); 
    int port = msg.getPort(); 

    Set set = (obj.getMAP()).entrySet(); 
    Iterator i = set.iterator(); 
    String total = ""; 

    while(i.hasNext()) { 
     Map.Entry<String, ArrayList<Person>> me = (Map.Entry<String, ArrayList<Person>>)i.next(); 
     Iterator<Account> it = (me.getValue()).iterator(); 
     while(it.hasNext()) 
     { 
      Account per = it.next(); 
      String temp = per.getName() + " " + per.getAddress() + " " + 
          per.getPhoneNumber() + "\n";      
      total += temp; 
     } 
    }  

    byte[] buffer = total.getBytes(); 
    DatagramPacket reply = new DatagramPacket(buffer, buffer.length, IP1, port); 
    socket1.send(reply); 
    socket1.close(); 
+0

什么是要去的第2行? – 2014-09-29 00:55:29

+0

有很多像100这样的空白空间。它弄乱了我的整个程序。 – poutine 2014-09-29 00:57:51

回答

0

您提到的具有空白空间的第2行并不包含空格。 你得到额外的线,因为这样:

temp = per.getName() + " " + per.getAddress() + " " + per.getPhoneNumber() + "\n"; 
                      ^

你应该做的是有一个条件,以确定是否这Account不附加\n它之前的最后一个。

temp = per.getName() + " " + per.getAddress() + " " + per.getPhoneNumber(); 
if(it.hasNext()) { 
    temp += "\n"; 
} 

希望这有助于! :)

+0

不仅我得到了一个额外的线,但我也得到了无尽的尾随空白。 – poutine 2014-09-29 01:07:30

+0

您的对等客户端是否正常工作? – 2014-09-29 03:20:07