Android--汉字转全拼

上一节介绍了天气预报小DEMO的制作,有些人就觉得打拼音不符合用户的习惯,怎么改成打汉字并且可以实现功能呢?这里就要用到汉字转全拼,这时我们就要引入jar包:

http://download.csdn.net/detail/yayun0516/8706403

将jar包解压后导入我们的工程:(导入方法自行百度)

然后我们编写我们的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/edit"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="南京" />

    <Button
        android:id="@+id/transfomer"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="转换" />

    <TextView
        android:id="@+id/show"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="" />

</LinearLayout>

编写工具类:

package com.lzg.hanzitopinyin;

import net.sourceforge.pinyin4j.PinyinHelper;
import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;

public class HanZiToPinYin {
	/**
	 * 返回一个字的拼音
	 * @param hanzi
	 * @return
	 */
	public static String toPinYin(char hanzi){
		HanyuPinyinOutputFormat hanyuPinyin = new HanyuPinyinOutputFormat();
	    hanyuPinyin.setCaseType(HanyuPinyinCaseType.LOWERCASE);
	    hanyuPinyin.setToneType(HanyuPinyinToneType.WITHOUT_TONE);//没有声调
	    hanyuPinyin.setVCharType(HanyuPinyinVCharType.WITH_U_UNICODE);
	    String[] pinyinArray=null;
	    try {
	    	//是否在汉字范围内
	    	if(hanzi>=0x4e00 && hanzi<=0x9fa5){
	    		//pinyinArray = PinyinHelper.toHanyuPinyinStringArray(hanzi, hanyuPinyin);
	    		pinyinArray = PinyinHelper.toHanyuPinyinStringArray(hanzi, hanyuPinyin);
	    	}
	    } catch (BadHanyuPinyinOutputFormatCombination e) {
	    	e.printStackTrace();
	    }
	    //将汉字返回
		return pinyinArray[0];
	}
}

编写activity:

package com.lzg.hanzitopinyin;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class TestActivity extends Activity {
	/** Called when the activity is first created. */
	EditText editText;
	TextView tView;
	Button trbButton;
	String pinyin;
	String hanziString;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		editText = (EditText) findViewById(R.id.edit);
		tView = (TextView) findViewById(R.id.show);
		trbButton = (Button) findViewById(R.id.transfomer);
		trbButton.setOnClickListener(new OnClickListener() {

			@Override
			public void onClick(View arg0) {
				hanziString = editText.getText().toString();
				pinyin = getPinyin(hanziString);
				tView.setText("拼音:" + pinyin + "\n" + "汉字:" + hanziString);

			}
		});

	}

	private String getPinyin(String hanzi) {
		String pinyin = "";
		for (int i = 0; i < hanzi.length(); i++) {
			pinyin += HanZiToPinYin.toPinYin(hanzi.charAt(i));

		}
		return pinyin;
	}
}

运行实例如下:

最后:

我的应用:                      http://openbox.mobilem.360.cn/index/d/sid/2966005

http://android.myapp.com/myapp/detail.htm?apkName=com.yayun.gitlearning

欢迎下载,有问题多交流,讨论谢谢!

时间: 2024-10-13 21:32:48

Android--汉字转全拼的相关文章

通过pinyin4j将汉字转换为全拼 和 拼音首字母

/** * 汉字转换为拼音 包含多音字,包含生母zh,ch,sh的 */ public void toPinYinAll(){ String initials = "zh,ch,sh"; //返回汉语拼音的全拼 List<String> result = new ArrayList<String>(); //返回汉语拼音的单拼 List<String> firstResult = new ArrayList<String>(); resu

sqlserver 汉字转全拼函数

create function fn_Getquanpin (@str varchar(100)) returns varchar(8000) as begin declare @re varchar(8000),@crs varchar(10) declare @strlen int select @strlen=len(@str),@re='' while @strlen>0 begin set @crs= substring(@str,@strlen,1) select @re= case

java根据汉字获取全拼和首字母

import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType; import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat; import net.sourceforge.pinyin4j.format.HanyuPinyinToneType; import net.sourcefor

将汉字转换为全拼 、提取每个汉字的首字母

其中使用到的包:pinyin4j-2.5.0.jar 下载地址:http://sourceforge.net/projects/pinyin4j/files/ 最新版本:pinyin4j-2.5.0

汉字转全拼音函数优化方案(SQLServer),值得你看看

函数要求实现功能 select 函数名 ('你好,我是追索') 返回的结果(ni hao , wo shi zhui suo) 解决方案一: 解决方案一 /* 根据汉字获取全拼 1.生成所有读音临时表 2.根据Chinese_PRC_CS_AS_KS_WS 排序获取读音 */ create function dbo.fn_Getquanpin1(@str varchar(100)) returns varchar(8000) as begin declare @re varchar(8000)

Android通讯录模糊查询搜索(号码,姓名,首字母简拼,全拼),批量选取联系人

Android通讯录模糊查询搜索(号码,姓名,首字母简拼,全拼),批量选取联系人 公司最近的项目中遇到一个需求需要读取通讯录联系人,并需要支持对联系人的模糊查询及批量选取,网上找了好几个例子,模糊查询这块处理的都有点小瑕疵,最终自己在各位网友的辛勤贡献基础之上进行了优化,最终做出了联系人模糊查询. 支持以下功能: 1.按 号码 , 姓名 , 首字母简拼 , 全拼 模糊查询 2.支持[A-Z]快速导航 3.支持联系人按首字母分类 4.支持联系人批量选取. 具体github地址:  https://

根据汉字首拼、全拼及汉字检索

类似淘宝.京东等电商系统的汉字.拼音检索功能的实现. 在检索商品时,如何根据商品名的首拼.全拼检索商品? 方案一: 在商品表goods中添加两个新字段存放首拼.全拼,让后按一般的字符串去查询. 方案二: 将全拼.首拼放入Lucene索引中,根据Lucene的"多域值"的特性检索. 1.Lucene的知识请自行查询其他资料. 2.汉字拼音.首拼获取如下: import net.sourceforge.pinyin4j.PinyinHelper;import net.sourceforge

获取汉字全拼、首字母缩写

demo效果: 引用:using System.Collections; 后台代码: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.

●获取汉字全拼

#region 汉字转拼音静态类,包括功能全拼和缩写,方法全部是静态的 //属性数据定义 private static readonly Dictionary<int, string> CodeCollections = new Dictionary<int, string> { {-20319,"a"},{-20317,"ai"},{-20304,"an"},{-20295,"ang"},{-2029