转载

Java JSP利用Google的Translate开发API

上次我说了用ASP,PHP,C#分别实现Google的Translate开发一个API ,由于很多程序代码由Java JSP实现,我还是利用一点时间做了一个Java JSP版本的,本人在Java方面还是入门的程度,期间,查了一些资料,虽然程序比较短,但是还是比较淘气的。

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

  1. //javac GoogleTranslator.java -encoding utf-8  
  2. import java.io.InputStream;  
  3. import java.net.URLEncoder;  
  4. import java.util.regex.*;  
  5. public class GoogleTranslator{  
  6. public String getUrlContent(String path){  
  7. String rtn = "";  
  8. int c;  
  9. try{  
  10. java.net.URL l_url = new java.net.URL(path);  
  11. java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection)
    l_url.openConnection();  
  12. l_connection.setRequestProperty("User-agent","Mozilla/4.0");  
  13. l_connection.connect();  
  14. InputStream l_urlStream = l_connection.getInputStream();  
  15. while (( ( cl_urlStream.read() )!=-1)){  
  16. int all=l_urlStream.available();  
  17. byte[] b =new byte[all];  
  18. l_urlStream.read(b);  
  19. rtn+= new String(b, "UTF-8");  
  20. }  
  21. //Thread.sleep(2000);  
  22. l_urlStream.close();  
  23. }catch(Exception e){  
  24. e.printStackTrace();  
  25. }  
  26. return rtn;  
  27. }  
  28. public String GetText(String Src){  
  29. String Os=null;  
  30. try{  
  31. String pUrl="http://translate.google.com/translate_t?langpair="+URLEncoder.
    encode("zh-CN|en","utf-8")+"&
    text="+URLEncoder.encode(Src,"gb2312") ;  
  32. String pageContent =getUrlContent(pUrl);  
  33. if(!isNullOrEmpty(pageContent)){  
  34. OsGetMatchString(pageContent,"(   
  35. )([?://s//S]*?)  
  36. ",2);   
  37. }  
  38. }catch(Exception e){  
  39. e.printStackTrace();  
  40. }  
  41. return Os;  
  42. }  
  43. private boolean isNullOrEmpty(String param) {  
  44. return param == null || param.trim().length() == 0;  
  45. }  
  46. public String GetMatchString(String text,String pattern,int point){  
  47. Pattern p = Pattern.compile(pattern);  
  48. Matcher m = p.matcher(text);  
  49. if(m.find()) {  
  50. return m.group(point); //匹配第1项  
  51. }  
  52. return null;  
  53. }  
  54. public static void main(String[] args){  
  55. GoogleTranslator obj=new GoogleTranslator();  
  56. System.out.println(obj.GetText("cjjer是Java天才"));  
  57. }  
  58. }; 

然后保存为GoogleTranslator.java,然后使用:Javac JSP GoogleTranslator.java -encoding utf-8,编译了,然后Java一下就可以了。

正文到此结束
Loading...