我一直在尝试提取一部分字符串。我是在Android应用程序(Java)中这么做的。
我的问题是,我将有一个字符串开始如下:
位置[融合20.01234,-30.9876 acc=20 (.)
它表示设备的当前坐标(我在那里组成了20和-30 )和一些其他测量值。我想从这个字符串中提取出两个坐标(它们总是在“融合”和“acc”之间),并将它们存储为浮点数。
我环顾四周,得出结论,可能需要RegExs来解决这个问题,但请记住,我以前只使用过一次正则表达式,而且我仍然对它们缺乏经验。
任何关于如何解决这个问题的指导都将不胜感激!
发布于 2017-02-14 05:40:37
RegExr是一个很好的学习和构建regex:http://regexr.com/的站点。
将字符串与此正则表达式匹配将给出2个坐标:
fused\s(-?\d+\.\d+),(-?\d+\.\d+)\s将此表达式复制到RegExr以查看每个字符的含义。
要在Java中使用regex表达式,您需要确保转义反斜杠字符(添加一个额外的反斜杠)
在Java中:
public static void main(String[] args) {
String yourString = "Location[fused 20.01234,-30.9876 acc=20 ";
Pattern pattern = Pattern.compile("fused\\s(-?\\d+\\.\\d+),(-?\\d+\\.\\d+)\\s");
Matcher matcher = pattern.matcher(yourString);
if(matcher.find()) {
String coordinate1 = matcher.group(1);
String coordinate2 = matcher.group(2);
System.out.println(coordinate1);
System.out.println(coordinate2);
}
}输出:
20.01234
-30.9876https://stackoverflow.com/questions/42217362
复制相似问题