В прошлый раз я говорил об использовании ASP, PHP и C# для реализации Google Translate и разработки API (Теги: API Google Translate). Поскольку большая часть программного кода реализована на JAVA (JSP), я все же потратил некоторое время на создание API. Java-версия. Я еще новичок в JAVA. За этот период я проверил некоторую информацию. Хотя программа относительно короткая, она все еще довольно капризная.
Как упоминалось в предыдущей главе, используя JAVA для получения содержимого URL-адреса, технология в этой статье реализует получение, а затем упорядочивает результаты сопоставления, и это завершено. Посмотрите на код:
//javac GoogleTranslator.java -encoding utf-8
импортировать java.io.InputStream;
импортировать java.net.URLEncoder;
импортировать java.util.regex.*;
общественный класс GoogleTranslator{
общественная строка getUrlContent (путь к строке) {
Строка rtn = "";
интервал с;
пытаться{
java.net.URL l_url = новый java.net.URL(путь);
java.net.HttpURLConnection l_connection = (java.net.HttpURLConnection) l_url.openConnection();
l_connection.setRequestProperty("Агент пользователя","Mozilla/4.0");
l_connection.connect();
InputStream l_urlStream = l_connection.getInputStream();
while (( ( c= l_urlStream.read() )!=-1)){
int all=l_urlStream.available();
байт[] b =новый байт[все];
l_urlStream.read (б);
rtn+= новая строка(b, "UTF-8");
}
//Thread.sleep(2000);
l_urlStream.close();
}catch(Исключение е){
е.printStackTrace();
}
возврат ртн;
}
http://bizhi.downcodes.com
общественная строка GetText (String Src) {
Строка Os=ноль;
пытаться{
String pUrl=" http://translate.google.com/translate_t?langpair="+URLEncoder.encode("zh-CN|en","utf-8")+"&text="+URLEncoder.encode(Src, "gb2312 ");
Строка pageContent =getUrlContent(pUrl);
если(!isNullOrEmpty(pageContent)){
Os= GetMatchString(pageContent,"(<div id=result_box dir="ltr">)([?:\s\S]*?)</div>",2);
}
}catch(Исключение е){
е.printStackTrace();
}
вернуть Ос;
}
частное логическое значение isNullOrEmpty (параметр String) {
return param == null || param.trim().length() == 0;
}
public String GetMatchString (текст строки, шаблон строки, точка int) {
Шаблон p = Pattern.compile(шаблон);
Matcher m = p.matcher(text);
если (m.find()) {
return m.group(point); //Сопоставляем первый элемент
}
вернуть ноль;
}
public static void main(String[] args){
GoogleTranslator obj=новый GoogleTranslator();
System.out.println(obj.GetText("cjjer — гений Java"));
}
};
Затем сохраните как GoogleTranslator.java и используйте:
javac GoogleTranslator.java -encoding utf-8.
После компиляции просто используйте JAVA.