播客 > 玩代码  >  JAVA (Jsp)利用Google的Translate开发API  | 登录  | RSS订阅地址  | Code平台

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

  上次我说了用ASP,PHP,C#分别实现Google的Translate开发一个API ( Tags: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一下就可以了。



相关参照:
ASP 使用Google的translate API
PHP 使用Google的translate API
.NET使用Google的translate API
天气:大雨,ccdot发表于2008-6-14 22:37:36,阅读了633次,共有个3回复.

技术文章是给技术人员看的是吧,技术人员很多用ff的,你为啥不看看ff下你站点的样子呢?

buzhizhe post in 2008-6-24 5:13:06 #1  

字截取的长长的,我上网站一般Opera9.5或者IE,不用FF。

ccdot post in 2008-6-24 7:51:31 #2  

我已经习惯ff了,不过好在我一般不看你的技术文章,也就看看写的废话。

buzhizhe post in 2008-6-24 17:20:55 #3  
  1. 想要转载我文章的人滚远远的,能想多远,就滚多远。
  2. 不要提交任何带有网址URL信息的评论.
  3. 需要更多信息?请使用站内搜索,郁闷了?听听我在听什么吧!
用户名:*验证:看不清楚请点击刷新验证码*
内容: