2016-12-07 1 views
2

Ich versuche derzeit, eine Zeichenfolge mit Google Translate "free" API zu übersetzen.Parsing antwortete Antwort von Google Translate's translate_a

Die function Ich habe currenly ist folgende:

static String sourceLang = "en"; 
static String targetLang = "de"; 

public static void translate(String msg) throws Exception { 

    msg = URLEncoder.encode(msg, "UTF-8"); 
    URL url = new URL("http://translate.googleapis.com/translate_a/single?client=gtx&sl=" + sourceLang + "&tl=" 
      + targetLang + "&dt=t&q=" + msg + "&ie=UTF-8&oe=UTF-8"); 

    URLConnection uc = url.openConnection(); 
    uc.setRequestProperty("User-Agent", "Mozilla/5.0"); 

    BufferedReader in = new BufferedReader(new InputStreamReader(uc.getInputStream(), "UTF-8")); 
    String inputLine; 

    while ((inputLine = in.readLine()) != null) { 
     System.out.println(inputLine); 
    } 

    in.close(); 
} 

Was mich zurückkehrt, zum Beispiel

[[["Das ist ein Satz","This is a sentence",,,3]],,"en"] 

oder

[[["Dies ist ein weiterer Satz mit einigen Symbolen \"$% \u0026 /() = º ~ ª ^","This is another sentence with a few symbols \"$%\u0026/()=º~ª^",,,3]],,"en"] 

Ich habe in ein paar JSON suchen Parsing-Methoden, aber ich konnte keine Möglichkeit finden, diese in JSON zu konvertieren, dann diese 3 Strings als zu analysieren drei String oder String [].

Irgendeine Idee, wie sollte es richtig gemacht werden?

Vielen Dank im Voraus!

Antwort

1

Dieses Stück Code der Trick:

Pattern p = Pattern.compile("\"([^\"]*)\""); 
    String line = "yourtext"; 
    Matcher m = p.matcher(line); 
    while (m.find()) { 
     System.out.println("m.group(1)=" + m.group(1)); 
    } 
+0

Danke, ich werde versuchen! Entschuldigung für die verspätete Antwort, aber ich habe gestern nur die Antwortbenachrichtigung erhalten. – Ani