JAVA (Jsp)利用Google的Translate开发API的代码

  由于很多程序代码由JAVA实现(JSP),我还是利用一点时间做了一个java版本的,本人在JAVA方面还是入门的程度,期间,查了一些资料,虽然程序比较短,但是还是比较淘气的。

  和上一话所说的利用JAVA获取URL的内容,这篇的技术实现获取,然后正则匹配结果,就完成了。看代码:

  

复制代码 代码如下:

  //javac GoogleTranslator.java -encoding utf-8

  import java.io.InputStream;

  import java.net.URLEncoder;

  import java.util.regex.*;

  public class GoogleTranslator{

  public String getUrlContent(String path){

  String rtn = "";

  int c;

  try{

  java.net.URL l_url = new java.net.URL(path);

  java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection) l_url.openConnection();

  l_connection.setRequestProperty("User-agent","Mozilla/4.0");

  l_connection.connect();

  InputStream l_urlStream = l_connection.getInputStream();

  while (( ( c= l_urlStream.read() )!=-1)){

  int all=l_urlStream.available();

  byte[] b =new byte[all];

  l_urlStream.read(b);

  rtn+= new String(b, "UTF-8");

  }

  //Thread.sleep(2000);

  l_urlStream.close();

  }catch(Exception e){

  e.printStackTrace();

  }

  return rtn;

  }

  public String GetText(String Src){

  String Os=null;

  try{

  String pUrl="http://translate.google.com/translate_t?langpair="+URLEncoder.encode("zh-CN|en","utf-8")+"&text="+URLEncoder.encode(Src,"gb2312") ;

  String pageContent =getUrlContent(pUrl);

  if(!isNullOrEmpty(pageContent)){

  Os= GetMatchString(pageContent,"(<div id=result_box dir=\"ltr\">)([?:\\s\\S]*?)</div>",2);

  }

  }catch(Exception e){

  e.printStackTrace();

  }

  return Os;

  }

  private boolean isNullOrEmpty(String param) {

  return param == null || param.trim().length() == 0;

  }

  public String GetMatchString(String text,String pattern,int point){

  Pattern p = Pattern.compile(pattern);

  Matcher m = p.matcher(text);

  if(m.find()) {

  return m.group(point); //匹配第1项

  }

  return null;

  }

  public static void main(String[] args){

  GoogleTranslator obj=new GoogleTranslator();

  System.out.println(obj.GetText("cjjer是Java天才"));

  }

  };

  然后保存为GoogleTranslator.java,然后使用:

  

复制代码 代码如下:

  javac GoogleTranslator.java -encoding utf-8

  编译了,然后JAVA一下就可以了。