0

以下代码读取传入的短信,然后打印消息的正文。如何让应用程序打印出中间没有任何空格的消息?

例如:收到的短信显示“我在这里”,所以“我在这里”被打印出来,但我希望应用程序打印出“HereIam”。

我怎样才能做到这一点?非常感激任何的帮助。

这是我的代码:

public void run() {
 try {
 DatagramConnection _dc = (DatagramConnection)Connector.open("sms://"); 
   for(;;) { 
    Datagram d = _dc.newDatagram(_dc.getMaximumLength()); 
    _dc.receive(d); 
    byte[] bytes = d.getData();
    String address = d.getAddress(); 
    String msg = new String(bytes); 
    System.out.println(address);
    System.out.println(msg);
   } 

 }catch (Exception me) { 

 }
}

谢谢

4

2 回答 2

1

试试这个

将此行添加到代码中

System.out.println(replaceAll(msg," ",""));

也添加这个方法

  public static String replaceAll(String source, String pattern,
        String replacement) {
    if (source == null)
        return "";

    StringBuffer sb = new StringBuffer();
    int idx = -1;
    int patIdx = 0;

    while ((idx = source.indexOf(pattern, patIdx)) != -1) {
        sb.append(source.substring(patIdx, idx));
        sb.append(replacement);
        patIdx = idx + pattern.length();
    }

    sb.append(source.substring(patIdx));
    return sb.toString();
}

它用空字符串替换所有空格,这就是你想要的。

于 2012-07-12T09:01:53.047 回答
0

使用String.replace()方法:

msg = msg.replace("\s+", "");
于 2012-07-12T08:57:57.220 回答