`
longgangbai
  • 浏览: 7340548 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一个简单的中英文翻译词典学习(类似灵格斯)一

阅读更多

    一种中英文翻译工具灵格斯,原理如下,输入相关的要翻译的字词,到相关网站中查询,将结果在本地显示。手机中实现这个功能,必须用手机访问Web的知识。学习JEE的童鞋明白,许多东西底层使用Apache HttpClient实现功能。如一个XFire底层访问,一些web的服务器底层等,一些常用的应用程序访问web网站等都是用这个组件开发,学习Android的童鞋会发现Android SDK中包含这个组件HttpClient, 但是他的功能没有JEE的HTTPClient的公共强大,但是仍然非常强悍!好了言归正传,开始讲解关于一个简单中英文翻译字典的实现。

 

     Android中实现原理讲解:采用HttpClient或者URLConnection访问得到结果,解析实现而已。至于界面吗?可以自行安排。好了看一下实现效果呗!

 

重点代码如下:

package com.easyway.android.xdict;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Map.Entry;
import org.apache.http.HttpResponse;
import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
/**
 * 手机访问远程http请求的信息
 * @author longgangbai
 * @date 2010-5-25
 * @version 1.0
 * @since JDK6.0
 */
public class HTTPClient {
	private final static  String DEFAULT_CHARSET="UTF-8";
	/**
	 * 手机远程请求文件信息解析
	 * @param urlPath
	 * @param map
	 * @return
	 */
	public  static String executeByHttpURLConnection(String urlPath,Map<String, String> map){
		String result="";
		InputStream is =null;
		OutputStream os = null;
		try {
			URL url = new URL(urlPath);
			HttpURLConnection httpCon = (HttpURLConnection) url.openConnection();
			//设置请求的方式
			httpCon.setRequestMethod("POST");
			//设置输入的信息
			httpCon.setDoInput(true);
			//设置输出信息
			httpCon.setDoOutput(true);
			//设置是否使用缓存
			httpCon.setUseCaches(false);
			//设置请求的参数
			if(map!=null)
			{
				Set<Entry<String,String>>  entryMaps=map.entrySet();
				for (Entry<String, String> entry : entryMaps) {
					httpCon.addRequestProperty(entry.getKey(), entry.getValue());
				}
			}
			httpCon.setRequestProperty("Charset", DEFAULT_CHARSET);
			is = httpCon.getInputStream();
			//os = httpCon.getOutputStream();
			//  使用os发送xml数据,使用is接收服务端返回的数据
		    result=getResponseResult(is);
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}finally{
			try {
				 is.close();
				 os.close();
			} catch (Exception e) {
			}
		}
		return result;
		
	}
	/**
	 * 获取相应的信息
	 * @param is
	 * @return
	 * @throws IOException
	 */
	public static String getResponseResult(InputStream is ) throws IOException{
		 BufferedReader br = new BufferedReader(new InputStreamReader(is, DEFAULT_CHARSET));
		 String line=null;
		 String result="";
		 while((line=br.readLine())!=null){
			 result+=line;
		 }
		return result;
	}
	
	 /**
	  * 手机访问页面采用apache的访问
	  * @param httpurl
	  * @return
	  */
	 public static String executeHttpClientByApache(String httpurl,Map<String, String> map) {
		 // 构建HttpClient的实例的应用
		 HttpClient httpclient=new DefaultHttpClient();
		 //设置post发送的对象
		 HttpPost httpPost = new HttpPost();
		 //设置各种请求的头部信息和参数
		 List<NameValuePair> params=new ArrayList<NameValuePair>();
		 if(map!=null){
				Set<Entry<String,String>>  entryMaps=map.entrySet();
				for (Entry<String, String> entry : entryMaps) {
					params.add(new BasicNameValuePair(entry.getKey(), entry.getValue()));
				}
		 }
		 String result="";
		 try {
			 //设置请求的格式为UTF-8形式
			  httpPost.setEntity(new UrlEncodedFormEntity(params,HTTP.UTF_8));
			  //获取响应的信息
			  HttpResponse response= httpclient.execute(httpPost);
			  //获取响应的状态
			  int statusCode=response.getStatusLine().getStatusCode();
			  if(statusCode==200){
				  result=EntityUtils.toString(response.getEntity(), DEFAULT_CHARSET);
			  }else{
				  System.out.println("statusCode="+statusCode);
			  }
		} catch (UnsupportedEncodingException e) {
			e.printStackTrace();
		}catch (ClientProtocolException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	    return result;

	 }
}

 

效果图如下:

 

 

 

分享到:
评论

相关推荐

    灵格斯会计词典(2个)ld2格式&txt格式

    这种格式的词典文件可以直接在灵格斯辞典软件中使用,提供全功能的查词、发音、例句演示等功能,适合需要专业级翻译和学习的用户。使用ld2格式的优点在于可以充分利用灵格斯的高级功能,如词汇记忆、智能提示等,...

    灵格斯+牛津词典

    灵格斯+牛津词典 lingoes 和 牛津词典 开发工具

    利用jieba完成对年报可读性分析所需词典(2个灵格斯词典+会计科目+会计术语+连词词典)

    jieba,一个流行的中文分词库,是此类任务的理想工具。本主题主要关注如何利用jieba与特定词典,包括两个灵格斯词典、会计科目词典、会计术语词典以及连词词典,来提升年报分析的准确性与效率。 首先,jieba是...

    灵格斯安装程序+牛津高阶英汉双解词典

    灵格斯词霸 x64 - 简体中文版(.exe) + 牛津高阶英汉双解词典

    经典词典 翻译软件打包(有道,灵格斯..)

    经典词典 翻译软件打包(有道,灵格斯..) 正在使用 很好的

    利用jieba完成对年报可读性分析所需5个词典(预处理后)(2个灵格斯词典、会计科目、会计术语、连词词典)

    jieba是一个广泛使用的中文分词库,它支持自定义词典,因此我们可以将这五个词典整合进jieba,提升分词效果,尤其对于处理年报中复杂的会计语言和专业术语。 总的来说,这些词典为年报可读性分析提供了强大的支持,...

    英语单词翻译_灵格斯词霸2.5.3 绿色便携版.rar

    综上所述,灵格斯词霸2.5.3绿色便携版不仅仅是一款翻译软件,它更是一个全方位的语言学习伴侣。它具备强大的词典资源,丰富多样的功能,以及极为方便的携带性,这些都是现代翻译软件中难得一见的特点。无论是商务...

    灵格斯计算机实用词典

    很好的实用的词典可以进行各种计算语言的翻译描述的行了吧 老大

    简单的中英文词典(java编写)

    总的来说,这个简单的中英文词典项目为初学者提供了一个全面实践Java基础知识的机会,涵盖了从编程基础到数据库交互,再到GUI设计和数据结构等多个重要领域,是提升编程技能的好教材。通过实际操作,学习者不仅能...

    灵格斯词霸(Lingoes) v2.9.2 官方安装版.zip

    Lingoes 灵格斯词霸 2.9.0 是一个历时一年全新重构的版本,我们从底层开始重写了所有代码,优化的架构,64位代码的支持,令软件运行更快、更稳、更兼容。灵格斯也是唯一支持最新版本的 IE10, Chrome 25、firefox 19...

    中英文词典数据库 mdb数据库文件 36672个词汇

    这是网络上搜集整理的一个中英文翻译词典的数据库。一共有36672条中英文词语对照表。可以用来做中英文翻译软件。有这方面需要的。可以下载。

    Pyqt5实现英文学习词典

    程序读取源文件路径下的txt格式词典文件,若没有就创建一个。词典文件存储方式为“英文单词 中文单词”,每行仅有一对中英释义。程序会根据用户的选择进入相应的功能模块,并显示相应的操作提示。当添加的单词已存在...

    lingoes_2.9.2_x64_cn灵格斯词霸 2.9.2 x64 (简体中文版)64位.rar

    综上所述,灵格斯词霸2.9.2 x64 简体中文版是一个功能全面且强大的翻译工具,特别适合需要在64位环境下进行多语种学习和工作的用户。其丰富的词典资源、高效的翻译功能以及便捷的同步服务,为用户提供了高效的语言...

    中英文切换,自定义翻译词典

    本项目涉及的主题是“中英文切换”与“自定义翻译词典”,这是一个典型的本地化(Localization)和文本处理任务,对于创建多语言支持的应用程序至关重要。下面将详细解释这些知识点。 首先,**中英文切换**是为用户...

    lingoes_2.9.2_cn灵格斯词霸 - 简体中文版.rar

    灵格斯词霸是一款强大的翻译和词典软件,专为学习者和专业人士设计。这款2.9.2简体中文版提供了丰富的语言资源和便捷的翻译功能,旨在帮助用户快速理解并掌握各种词汇。在这款软件中,我们可以找到以下几个关键知识...

    基于Java的简单中英文词典查询基于Java的简单中英文词典查询.zip

    它提供了一个简单的中英文词典查询应用程序的基础框架。它展示了如何使用Java编程语言和Swing库来创建图形用户界面,并利用MySQL数据库来存储和查询数据。具体来说,这段代码的开发意义包括:学习如何创建基本的图形...

    知网hownet中英文情感词典

    4. **机器翻译**:在翻译过程中,情感词典能帮助保留原文的情感色彩,提高翻译的准确性和自然度。 5. **文本生成**:在生成有情感色彩的文本时,如故事或评论,情感词典可以指导选择恰当的词汇来表达特定情感。 6....

    一种简单的英文词典排版系统

    本文将详细介绍一个简单的英文词典排版系统的实现方法。该系统主要基于C语言开发,并且具备以下功能: 1. **输入和显示单词**:用户可以输入新的单词,并在屏幕上查看已输入的所有单词。 2. **识别单词**:系统能够...

    中英文词典.zip

    【标题】"中英文词典.zip"所包含的项目是一个实现了中英文互译功能的代码库,这在学习、教学和日常使用中非常实用。它可能是由一系列编程语言(如Python、JavaScript或Java)编写的,旨在帮助用户查找并理解词汇的...

    基于python的英文电子词典

    在本项目中,我们构建了一个基于Python的英文电子词典,它包含客户端和服务端两部分。这个系统利用了MongoDB数据库来存储大量的英文单词及其解释,同时提供了在线查询功能,使得用户可以方便地查找和学习英语词汇。...

Global site tag (gtag.js) - Google Analytics