android中使用StringTokenizer的字符串标记化

android中使用StringTokenizer的字符串标记化,android,json,string,stringtokenizer,Android,Json,String,Stringtokenizer,我正在尝试将从json接收的字符串格式化为新的格式。实际字符串是[90.36855,23.7500883333334],我的目标是将其转换为两个不同的字符串,如90.36855和23.7500883333334 我试着用下面的方法 String s = "[90.36855,23.750088333333334]"; StringTokenizer st = new StringTokenizer(s, "["); String lat = st.nextToken(); String lon

我正在尝试将从json接收的字符串格式化为新的格式。实际字符串是
[90.36855,23.7500883333334]
,我的目标是将其转换为两个不同的字符串,如
90.36855
23.7500883333334

我试着用下面的方法

String s = "[90.36855,23.750088333333334]";
StringTokenizer st = new StringTokenizer(s, "[");
String lat = st.nextToken();
String lon = st.nextToken();
但它显示了
致命异常:main
。如何解决此问题?

使用此代码

String s = "[90.36855,23.750088333333334]";
String result = s.replaceAll("[]","");
StringTokenizer st = new StringTokenizer(result, ",");
String lat = st.nextToken();
String lon = st.nextToken();
使用此代码

String s = "[90.36855,23.750088333333334]";
String result = s.replaceAll("[]","");
StringTokenizer st = new StringTokenizer(result, ",");
String lat = st.nextToken();
String lon = st.nextToken();

在此字符串中,
[
只出现一次。因此在这一行中,
字符串lon=st.nextToken();
将引发异常,因为
nextToken()
不可用

由于
字符串是
JSONArray
,因此可以使用
org.json
获取lat和lon

例如:

但是,如果您不想使用
JSONArray
,那么
StringTokenizer
也可以为您提供帮助。只需使用
[],
更新regx即可:

String s = "[90.36855,23.750088333333334]";
StringTokenizer st = new StringTokenizer(s, "[],");
String lat = st.nextToken();
String lon = st.nextToken();

在此字符串中,
[
只出现一次。因此在这一行中,
字符串lon=st.nextToken();
将引发异常,因为
nextToken()
不可用

由于
字符串是
JSONArray
,因此可以使用
org.json
获取lat和lon

例如:

但是,如果您不想使用
JSONArray
,那么
StringTokenizer
也可以为您提供帮助。只需使用
[],
更新regx即可:

String s = "[90.36855,23.750088333333334]";
StringTokenizer st = new StringTokenizer(s, "[],");
String lat = st.nextToken();
String lon = st.nextToken();

用这个替换你的代码

    String s = "[90.36855,23.750088333333334]";
    s = s.substring(1, s.length() - 1); //Trim first and last brackets
    StringTokenizer st = new StringTokenizer(s, ","); //pass comma as delimeter
    String lat = st.nextToken();
    String lon = st.nextToken();

用这个替换你的代码

    String s = "[90.36855,23.750088333333334]";
    s = s.substring(1, s.length() - 1); //Trim first and last brackets
    StringTokenizer st = new StringTokenizer(s, ","); //pass comma as delimeter
    String lat = st.nextToken();
    String lon = st.nextToken();
试试这个

String s = "[90.36855,23.750088333333334]";
        StringTokenizer st = new StringTokenizer(s,",");
        String lat = st.nextToken().substring(1);
        String lon = st.nextToken();
        lon = lon.substring(0,lon.length()-1)
试试这个

String s = "[90.36855,23.750088333333334]";
        StringTokenizer st = new StringTokenizer(s,",");
        String lat = st.nextToken().substring(1);
        String lon = st.nextToken();
        lon = lon.substring(0,lon.length()-1)

是的,这确实有效。我将使用第一个。非常感谢。虽然其他答案也正确,但我将接受这个答案,因为我使用了jsonArray。获取(0)为了解决这个问题。谢谢大家。是的,这确实有效。我将使用第一个。非常感谢。虽然其他答案也正确,但我将接受这个答案,就像我使用jsonArray一样。获取(0)来解决这个问题。谢谢大家。