在 android 中使用 StringTokenizer 进行字符串标记化
String tokenization using StringTokenizer in android
我正在尝试将从 json 接收到的字符串格式化为新的格式化。实际的字符串是 [90.36855,23.750088333333334]
,我的目标是将它转换成两个不同的字符串,例如 90.36855
和 23.750088333333334
我试过下面的方法
String s = "[90.36855,23.750088333333334]";
StringTokenizer st = new StringTokenizer(s, "[");
String lat = st.nextToken();
String lon = st.nextToken();
但是显示FATAL EXCEPTION: 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 lon = st.nextToken();
它会抛出异常,因为 nextToken()
不可用。
由于 String
是 JSONArray
,您可以使用 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();
只需用这个替换你的代码,
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)
我正在尝试将从 json 接收到的字符串格式化为新的格式化。实际的字符串是 [90.36855,23.750088333333334]
,我的目标是将它转换成两个不同的字符串,例如 90.36855
和 23.750088333333334
我试过下面的方法
String s = "[90.36855,23.750088333333334]";
StringTokenizer st = new StringTokenizer(s, "[");
String lat = st.nextToken();
String lon = st.nextToken();
但是显示FATAL EXCEPTION: 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 lon = st.nextToken();
它会抛出异常,因为 nextToken()
不可用。
由于 String
是 JSONArray
,您可以使用 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();
只需用这个替换你的代码,
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)