免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2315 | 回复: 0
打印 上一主题 下一主题

JAVA (Jsp)利用Google的Translate开发API [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-07-22 17:19 |只看该作者 |倒序浏览
利用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一下就可以
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP