java 取字符串中双引号中内容

发布于 2022-09-01 22:27:45 字数 332 浏览 14 评论 0

如何取name "David Beckham"中的name和David Beckham这两个值,我取得不对。我思路似乎先空格划分得到第一个name,然后截取“”中内容。

String str = varArr[j];//比如值为 name "David Beckham"
 
String[] tempArr = str.split(" ");
                String key = tempArr[0]; 
                String value = str.substring(str.indexOf("\""), str .indexOf("\""));

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

感性 2022-09-08 22:27:45

别用空格切分,直接用双引号切分,取前两个字符串,然后trim()一下就好了

梦中的蝴蝶 2022-09-08 22:27:45

我还是习惯用split,虽然感觉比较low。

String[] tempArr = str.split("\"");
String key = tempArr[0].trim();
String value = tempArr[1].trim();
阳光下慵懒的猫 2022-09-08 22:27:45

你需要lastIndexOf

瀟灑尐姊 2022-09-08 22:27:45

难道正确的方法不是用String.split()?

吲‖鸣 2022-09-08 22:27:45

split在这里不合理,用正则准确分割

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public static void main(String[] args) {
        Pattern p = Pattern.compile("(name)\\s+\"(\\w+\\s+\\w+)\"");
        Matcher m = p.matcher("name \"David Beckham\"");
        if (m.find()) {
            System.out.println(m.group(1));
            System.out.println(m.group(2));
        }

    }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文