实现代码:
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)
分享到:
相关推荐
- 在Eclipse的classpath variable中设置`GRAILS_HOME`变量,指向Grails的安装目录,避免在创建或导入项目时手动添加库文件。 - 在`Windows -> Preferences -> Groovy`中,勾选"Disable Groovy Compiler Generating...
总之,《Grails中文参考手册》覆盖了从安装、创建应用到部署和配置的全过程,对于希望掌握Grails框架的开发者来说,是一份不可或缺的学习资源。通过深入学习和实践,你将能够充分利用Grails的强大功能,快速构建出高...
Grails 提供了一个强大的命令行工具,用于初始化项目、创建域类、生成控制器、运行测试等。这大大提高了开发效率,减少了手动编写配置文件的工作。 **Testing** Grails 鼓励全面的测试实践,包括单元测试、集成...
Grails框架的中文入门资料较为稀缺,因而这份文档显得尤其宝贵。文档涵盖了从安装、配置、Web开发、服务层、测试、国际化、安全到插件使用等多个方面的详细介绍,是Grails新手学习的宝贵资料。通过这份文档,开发者...
文档会阐述如何创建服务、调用服务以及实现事务管理。 5. **控制器(Controllers)**:控制器负责处理HTTP请求并调用服务层,文档会介绍如何创建控制器、定义动作(actions)以及如何与视图进行交互。 6. **视图...
### Grails框架中文第二版知识点概述 #### 一、简介 **Grails 2.0新特性** 1. **面向开发的特性** - 改进了开发者体验,例如通过简化配置来提高开发效率。 - 引入了新的工具和功能,如Groovy模板引擎Thymeleaf...
《Grails中文API详解》 Grails是一种基于Groovy语言的开源Web应用框架,它以其高效、简洁的特性深受开发者喜爱。Grails中文API的出现,为国内开发者提供了更友好的文档支持,使得理解与使用Grails框架变得更加方便...
提供的 "Grails1.1中文文档-----2009.3.25.chm" 和 "Grails.zip" 文件,应该包含了 Grails 1.1 版本的中文文档和可能的示例代码。这些文档可以帮助你深入了解 Grails 的各项特性和使用方法,特别是对于初学者来说,...
《Grails1.1中文文档》是Grails 1.1版本的官方中文指南,包含了框架的详细介绍、安装指南、基本概念、MVC模式的应用、GORM的使用、服务层、控制器、视图、国际化、测试等方面的内容。通过阅读这份文档,开发者可以...
二、Grails中文文档的价值 1. 学习入口:对于中文开发者来说,中文文档降低了学习Grails的门槛,帮助理解和掌握Grails的基本概念、框架结构、开发工具以及最佳实践。 2. 快速上手:文档通常包含安装指南、教程、...
《Grails 中文参考手册》是一本全面介绍Grails框架的指南,旨在帮助开发者快速上手并深入理解Grails的各个核心概念和技术。Grails是一个基于Groovy语言的开源Web应用框架,它提供了高效的开发环境和强大的功能,使得...
Grails1.1最新 中文 文档 当今的Java Web开发技术显得过于复杂,相对于它本身的需要来说。现在主流的Java Web框架也是异常复杂,而且没有很好的遵循 Don't Repeat Yourself (DRY) 法则。 因此我们要以一种新的思维...
同时,通过实践创建简单的Grails应用,了解控制器、服务、领域模型的创建和交互,以及插件的使用。此外,深入研究URL映射和GSP标签库,能让你更好地利用Grails构建高效、可维护的Web应用。 通过阅读《Grails1.1中文...
7. 阅读Grails中文API文档,解决实际开发中的问题。 在学习过程中,还可以参考在线教程、视频课程和社区论坛,如Stack Overflow和Grails官方社区,以便获取更多实践经验和帮助。 总之,Grails作为Java平台上的快速...
**Grails 框架详解** Grails 是一个基于 Groovy 语言的开源Web应用程序框架,它构建在Java平台之...通过阅读《Grails 中文手册》,开发者可以深入理解框架的工作原理,掌握各种开发技巧,从而提高开发效率和代码质量。
Grails提供了一套强大的命令行工具,用于快速创建项目、生成控制器、领域类、服务等。例如,`grails create-app` 创建新应用,`generate-controller` 生成控制器,`generate-domain-class` 生成领域类。 四、GORM...
《Grails权威指南 中文版》是一本专注于Grails框架和Groovy语言的中文版技术书籍。本书的作者是Grails项目负责人Graeme Keith Rocher,他将自己对于Grails框架的深刻理解和使用经验编纂成书,以便向读者全面介绍这一...