`
热带翎羽
  • 浏览: 64761 次
  • 性别: 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项目

    - 在Eclipse的classpath variable中设置`GRAILS_HOME`变量,指向Grails的安装目录,避免在创建或导入项目时手动添加库文件。 - 在`Windows -> Preferences -> Groovy`中,勾选"Disable Groovy Compiler Generating...

    grails中文参考手册

    总之,《Grails中文参考手册》覆盖了从安装、创建应用到部署和配置的全过程,对于希望掌握Grails框架的开发者来说,是一份不可或缺的学习资源。通过深入学习和实践,你将能够充分利用Grails的强大功能,快速构建出高...

    Grails中文参考手册

    Grails 提供了一个强大的命令行工具,用于初始化项目、创建域类、生成控制器、运行测试等。这大大提高了开发效率,减少了手动编写配置文件的工作。 **Testing** Grails 鼓励全面的测试实践,包括单元测试、集成...

    grails中文入门简介

    Grails框架的中文入门资料较为稀缺,因而这份文档显得尤其宝贵。文档涵盖了从安装、配置、Web开发、服务层、测试、国际化、安全到插件使用等多个方面的详细介绍,是Grails新手学习的宝贵资料。通过这份文档,开发者...

    Grails1.1中文文档

    文档会阐述如何创建服务、调用服务以及实现事务管理。 5. **控制器(Controllers)**:控制器负责处理HTTP请求并调用服务层,文档会介绍如何创建控制器、定义动作(actions)以及如何与视图进行交互。 6. **视图...

    grails 中文第二版

    ### Grails框架中文第二版知识点概述 #### 一、简介 **Grails 2.0新特性** 1. **面向开发的特性** - 改进了开发者体验,例如通过简化配置来提高开发效率。 - 引入了新的工具和功能,如Groovy模板引擎Thymeleaf...

    grails中文API

    《Grails中文API详解》 Grails是一种基于Groovy语言的开源Web应用框架,它以其高效、简洁的特性深受开发者喜爱。Grails中文API的出现,为国内开发者提供了更友好的文档支持,使得理解与使用Grails框架变得更加方便...

    grails中文文档

    提供的 "Grails1.1中文文档-----2009.3.25.chm" 和 "Grails.zip" 文件,应该包含了 Grails 1.1 版本的中文文档和可能的示例代码。这些文档可以帮助你深入了解 Grails 的各项特性和使用方法,特别是对于初学者来说,...

    Grails Grails Grails

    《Grails1.1中文文档》是Grails 1.1版本的官方中文指南,包含了框架的详细介绍、安装指南、基本概念、MVC模式的应用、GORM的使用、服务层、控制器、视图、国际化、测试等方面的内容。通过阅读这份文档,开发者可以...

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

    二、Grails中文文档的价值 1. 学习入口:对于中文开发者来说,中文文档降低了学习Grails的门槛,帮助理解和掌握Grails的基本概念、框架结构、开发工具以及最佳实践。 2. 快速上手:文档通常包含安装指南、教程、...

    Grails 中文参考手册

    《Grails 中文参考手册》是一本全面介绍Grails框架的指南,旨在帮助开发者快速上手并深入理解Grails的各个核心概念和技术。Grails是一个基于Groovy语言的开源Web应用框架,它提供了高效的开发环境和强大的功能,使得...

    Grails1.1中文文档(CHM)

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

    Grails1.1中文文档.rar

    同时,通过实践创建简单的Grails应用,了解控制器、服务、领域模型的创建和交互,以及插件的使用。此外,深入研究URL映射和GSP标签库,能让你更好地利用Grails构建高效、可维护的Web应用。 通过阅读《Grails1.1中文...

    Grails入门精通及中文API

    7. 阅读Grails中文API文档,解决实际开发中的问题。 在学习过程中,还可以参考在线教程、视频课程和社区论坛,如Stack Overflow和Grails官方社区,以便获取更多实践经验和帮助。 总之,Grails作为Java平台上的快速...

    grails 中文手册

    **Grails 框架详解** Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之...通过阅读《Grails 中文手册》,开发者可以深入理解框架的工作原理,掌握各种开发技巧,从而提高开发效率和代码质量。

    grails-用户手册

    Grails提供了一套强大的命令行工具,用于快速创建项目、生成控制器、领域类、服务等。例如,`grails create-app` 创建新应用,`generate-controller` 生成控制器,`generate-domain-class` 生成领域类。 四、GORM...

    Grails权威指南 中文版

    《Grails权威指南 中文版》是一本专注于Grails框架和Groovy语言的中文版技术书籍。本书的作者是Grails项目负责人Graeme Keith Rocher,他将自己对于Grails框架的深刻理解和使用经验编纂成书,以便向读者全面介绍这一...

Global site tag (gtag.js) - Google Analytics