评论

收藏

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

开发技术 开发技术 发布于:2021-10-24 14:41 | 阅读数:271 | 评论:0

由于很多程序代码由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="https://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一下就可以了。
关注下面的标签,发现更多相似文章