2016-03-09 1 views
0

J'essaye de formater une chaîne qui a été reçue d'un json dans un nouveau formate. La chaîne réelle est [90.36855,23.750088333333334] et mon objectif est de le convertir en deux chaînes différentes comme 90.36855 et 23.750088333333334Chaîne de tokenisation utilisant StringTokenizer dans android

J'ai essayé de la façon suivante

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

Mais il montre FATAL EXCEPTION: main. Comment puis-je résoudre ce problème?

Répondre

0

dans cette chaîne [ ne vient qu'une fois. Donc, dans cette ligne String lon = st.nextToken(); il va vous jeter exception, comme nextToken() n'est pas disponible.

Comme le String est JSONArray, vous pouvez utiliser org.json pour obtenir lat et lon.

.: par exemple

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

Mais si vous ne voulez pas utiliser JSONArray alors StringTokenizer peut aussi faire l'affaire pour vous. Il suffit de mettre à jour REGX avec [],:

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

oui cela fonctionne vraiment. Je vais utiliser le premier. Merci beaucoup. – anuradha

+0

Bien que d'autres réponses soient également correctes, mais je vais accepter cette réponse car j'ai utilisé jsonArray.get (0) pour résoudre ce problème. Merci à tous. – anuradha

0

Utilisez ce code

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

Remplacez simplement votre code avec cela,

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

essayer.

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)