【问题标题】:String tokenization using StringTokenizer in android在 android 中使用 StringTokenizer 进行字符串标记化
【发布时间】:2016-03-09 06:49:05
【问题描述】:

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

我尝试了以下方式

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

但它显示FATAL EXCEPTION: main。我该如何解决这个问题?

【问题讨论】:

    标签: android json string stringtokenizer


    【解决方案1】:

    在这个字符串中[ 只出现一次。所以在这一行String lon = st.nextToken(); 它会抛出异常,因为nextToken() 不可用。

    由于StringJSONArray,您可以使用org.json 来获取纬度和经度。

    例如:

    String s = "[90.36855,23.750088333333334]";
    JSONArray jsonArray = new JSONArray(s);
    String lat = jsonArray.get(0);
    String lon = jsonArray.get(1);
    

    但如果您不想使用JSONArray,那么StringTokenizer 也可以为您解决问题。只需使用 [], 更新 regx:

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

    【讨论】:

    • 是的,这确实有效。我会用第一个。非常感谢。
    • 虽然其他答案也是正确的,但我会接受这个答案,因为我使用 jsonArray.get(0) 来解决这个问题。谢谢大家。
    【解决方案2】:

    只需用这个替换你的代码,

        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();
    

    【讨论】:

      【解决方案3】:

      使用此代码

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

      【讨论】:

        【解决方案4】:

        试试这个。

        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)
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2015-10-22
          • 2011-05-31
          • 2010-11-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-09-05
          相关资源
          最近更新 更多