`
热带翎羽
  • 浏览: 62523 次
  • 性别: Icon_minigender_1
  • 来自: 福州
社区版块
存档分类
最新评论

创建Grails的中文拼音转换服务

阅读更多
实现代码:
package utility
import net.sourceforge.pinyin4j.PinyinHelper
import net.sourceforge.pinyin4j.format.*
class PinyinService {

    static transactional = false
	static hanYuPinOutputFormat=null
	def init()
	{
		hanYuPinOutputFormat = new HanyuPinyinOutputFormat();
	    hanYuPinOutputFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
	    hanYuPinOutputFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE)
	    hanYuPinOutputFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
	}
	//如: convertToList("福州")=["fu", "zhou"]
    def convertToList(String chinese) {

		if(hanYuPinOutputFormat==null) init()
	    def pinyin = []
	    chinese.getChars().each {
	        if(it > 128)
	        {
	            pinyin.add( PinyinHelper.toHanyuPinyinStringArray(it,hanYuPinOutputFormat)[0])
	        }
	    }
	    return pinyin
    }

	//如: convertToString("福州")="FuZhou"
	def convertToString(String chinese) {
	    if(hanYuPinOutputFormat==null) init()

	    def pinyin = ""
	    chinese.getChars().each {
	        if(it > 128)
	        {
	            pinyin=pinyin+ (PinyinHelper.toHanyuPinyinStringArray(it,hanYuPinOutputFormat)[0]).capitalize()
	        }
	    }
	    return pinyin
    }

	//如: convertToAbbreviationString("福州")="FZ"
	def convertToAbbreviationString(String chinese) {
	    if(hanYuPinOutputFormat==null) init()
		
	    def pinyin = ""
	    chinese.getChars().each {
	        if(it > 128)
	        {
	            pinyin=pinyin+ PinyinHelper.toHanyuPinyinStringArray(it,hanYuPinOutputFormat)[0][0].capitalize()
	        }
	    }
	    return pinyin
    }
}



测试代码:

class BootStrap {
	def pinyinService
    def init = { servletContext ->
        println "Start pinyin testing:"

	    println "中国福州 to list:"+"    "+pinyinService.convertToList("中国福州")
		println "中国福州 to string:"+"    "+pinyinService.convertToString("中国福州")
		println "中国福州 to abbreviation string:"+"    "+pinyinService.convertToAbbreviationString("中国福州")

	    println "End pinyin testing."
    }
    def destroy = {
    }
}


运行结果:

Start pinyin testing:
中国福州 to list:    [zhong, guo, fu, zhou]
中国福州 to string:    ZhongGuoFuZhou
中国福州 to abbreviation string:    ZGFZ
End pinyin testing.


感谢pinyin4j作者:Li Min (xmlerlimin@gmail.com)
1
0
分享到:
评论

相关推荐

    Eclipse下搭建Grails项目

    Grails项目的应用越来越多,而对于初学者来说,在Eclipse下搭建Grails项目是一个难题,这个文档将教会你如何搭建Grails项目,希望对你有所帮助。

    Grails中文参考手册

    Grails 中文 参考手册

    grails中文参考手册

    grails中文参考手册 学习资料 groovy

    grails 中文第二版

    grails 中文第二版

    Grails Grails Grails

    Grails Grails Grails Grails Grails

    grails中文API

    grails 中文 API grails 中文 API

    Grails1.1中文文档

    基于 Spring 的抽象事务概念的事务服务层 所有这些都非常易于使用,这得益于 Groovy 语言的强大以及 Domain Specific Languages (DSLs) 的广泛使用。 本文档将带你从Grails入门开始,最终能够使用Grails框架建设...

    Grails1.1中文文档(CHM)

    Grails1.1最新 中文 文档 当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat Yourself (DRY) 法则。 因此我们要以一种新的思维...

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    grails 中文文档+grails-fckeditor-0.9.5.zip插件

    grails中文入门简介

    比较难找的grails的资料,我也是找了很久才找到的。需要grails相关的拿走

    Grails 1.1 中文手册 chm

    Grails 最新的 v1.1版的中文文档,chm格式,Grails是一套快速开发Web应用的开源框架,基于Groovy编程语言,并构建于Spring、Hibernate和其它标准Java框架之上,能为大家带来超高效率的一站式框架。

    Grails 中文参考手册

    2.2 创建一个Grails应用 2.3 Hello World示例 2.4 使用IDE 2.5 规约配置 2.6 运行Grails应用 2.7 测试Grails应用 2.8 部署Grails应用 2.9 所支持的Java EE容器 2.10 创建工件 2.11 生成Grails应用 3. 配置 3.1 基本...

    Grails权威指南 Grails权威指南

    Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南Grails权威指南

    grails 中文手册

    grails 中文手册,grails应该不用说明是啥东西了吧,流行的脚本语言groovy应用框架。

    grails中文文档

    比较详细的grails中文文档,有所有命令行解释,还有grails的一个完整的学习过程的资料

    Groovy轻松入门——Grails实战基础篇

    在学习任何东西之前,最重要的是培养兴趣,Groovy世界最耀眼的技术之一--Grails相信大家早已耳闻,我将通过Grails实战系列文章 向您展现Grails的迷人风采,使您感受到Grails的魅力,以至疯狂地爱上Grails,并坠入...

    Grails超全操作手册(中文版)

    Grails超全中文操作手册,无论是大神还是初学者都很适用的操作文档。很全很详细,希望能帮到学习grails框架的你。

Global site tag (gtag.js) - Google Analytics