小编use*_*617的帖子

有没有更好的方法将此字符串分成子串?

我试图提取"first_name""last_name"从信息的长字符串看起来像这样:

{
    "123123123": {
        "id": "12321312****",
        "email": "***************",
        "first_name": "Marcus",
        "gender": "male",
        "last_name": "Bengtsson",
        "link": "https://www.facebook.com/app_scoped_user_id/123123123/",
        "locale": "en_EN",
        "middle_name": "Peter",
        "name": "Marcus Peter Bengtsson"
    }
}
Run Code Online (Sandbox Code Playgroud)

我的方式做到这一点(这可能是可怕的错误和一个非常糟糕的解决方案)是我首先从提取的子串"first_name""link"使用此代码:

String subStr = str.substring(str.indexOf("first_name"), str.lastIndexOf("link"));
Run Code Online (Sandbox Code Playgroud)

然后我得到:

first_name":"Marcus","gender":"male","last_name":"Bengtsson","

然后,我做同样的事情,但是从":""gender"获得"first_name:

String firstNameOfUser = subStr.substring(subStr.indexOf(":")+2, subStr.lastIndexOf("gender")-3);
Run Code Online (Sandbox Code Playgroud)

然后同样的事情"last_name":

String lastNameOfUser = subStr.substring(subStr.indexOf(""last_name"")+12, subStr.lastIndexOf(",")-1);
Run Code Online (Sandbox Code Playgroud)

最后,我在两个字符串之间添加一个空格:

String nameOfUser = new StringBuilder().append(firstNameOfUser).append(" ").append(lastNameOfUser).toString();
Run Code Online (Sandbox Code Playgroud)

然后我得到:

Marcus Bengtsson

可能有一个更好的方法来做到这一点,但我无法找出如何解决.

java substring append indexof lastindexof

0
推荐指数
1
解决办法
113
查看次数

标签 统计

append ×1

indexof ×1

java ×1

lastindexof ×1

substring ×1