Android从SMS字符串拆分文本/数字

时间:2015-03-02 01:49:25

标签: android string sms strip

我正在制作一个gps跟踪程序,我收到一条带有以下内容的短信

smsMessage =" http://maps.google.com/maps?q = 42.396068,13.45201,17手机在该区域外"

任何人都可以这么善良并告诉我如何从sms字符串中仅拆分所需的经度和纬度?

提前

thanx

2 个答案:

答案 0 :(得分:0)

您需要使用正则表达式来获取给定文本的纬度和经度。这是:

[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)  

匹配

  • +90.0,-127.554334 45,180
  • -90,-180
  • -90.000,-180.0000
  • +90,+ 180
  • 47.1231231,1799.99999999

不匹配

  • -90。,-180。
  • +90.1,-100.111
  • -91,123.456
  • 045,180

来源:Regular expression for matching latitude/longitude coordinates?

答案 1 :(得分:0)

你可以这样做,

String s = "http://maps.google.com/maps?q=42.396068,13.45201,17 phone is outside the area";
String parts[] = s.replaceAll("^.*?=|\\s.*", "").split(",(?=[-+]?\\d+\\.\\d+)");
System.out.println(Arrays.toString(parts));

输出:

[42.396068, 13.45201,17]