首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java (Android)-提取字符串的一部分,在两个特定的单词之间

Java (Android)-提取字符串的一部分,在两个特定的单词之间
EN

Stack Overflow用户
提问于 2017-02-14 03:27:48
回答 1查看 67关注 0票数 0

我一直在尝试提取一部分字符串。我是在Android应用程序(Java)中这么做的。

我的问题是,我将有一个字符串开始如下:

位置[融合20.01234,-30.9876 acc=20 (.)

它表示设备的当前坐标(我在那里组成了20和-30 )和一些其他测量值。我想从这个字符串中提取出两个坐标(它们总是在“融合”和“acc”之间),并将它们存储为浮点数。

我环顾四周,得出结论,可能需要RegExs来解决这个问题,但请记住,我以前只使用过一次正则表达式,而且我仍然对它们缺乏经验。

任何关于如何解决这个问题的指导都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-02-14 05:40:37

RegExr是一个很好的学习和构建regex:http://regexr.com/的站点。

将字符串与此正则表达式匹配将给出2个坐标:

代码语言:javascript
复制
fused\s(-?\d+\.\d+),(-?\d+\.\d+)\s

将此表达式复制到RegExr以查看每个字符的含义。

要在Java中使用regex表达式,您需要确保转义反斜杠字符(添加一个额外的反斜杠)

在Java中:

代码语言:javascript
复制
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);
    }
}

输出:

代码语言:javascript
复制
20.01234
-30.9876
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42217362

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档