/*-1.-获得汉字字符串的首字母
根据大力的贴子改成.将大力的两个函数合并成了一个函数.
可以应用于助记码的查询
--转载(最早见于j9988的发表,具体原作者不明)--*/
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[fGetPy]') and xtype in (N'FN', N'IF', N'TF'))
drop function [dbo].[fGetPy]
GO
--创建取拼音函数
create function fGetPy(@Str varchar(500)='')
returns varchar(500)
as
begin
declare @strlen int,@return varchar(500),@ii int
declare @n int,@c char(1),@chn nchar(1)
select @strlen=len(@str),@return='',@ii=0
set @ii=0
while @ii<@strlen
begin
select @ii=@ii+1,@n=63,@chn=substring(@str,@ii,1)
if @chn>'z'
select @n = @n +1
,@c = case chn when @chn then char(@n) else @c end
from(
select top 27 * from (
select chn = '吖'
union all select '八'
union all select '嚓'
union all select '咑'
union all select '妸'
union all select '发'
union all select '旮'
union all select '铪'
union all select '丌'--because have no 'i'
union all select '丌'
union all select '咔'
union all select '垃'
union all select '嘸'
union all select '拏'
union all select '噢'
union all select '妑'
union all select '七'
union all select '呥'
union all select '仨'
union all select '他'
union all select '屲'--no 'u'
union all select '屲'--no 'v'
union all select '屲'
union all select '夕'
union all select '丫'
union all select '帀'
union all select @chn) as a
order by chn COLLATE Chinese_PRC_CI_AS
) as b
else set @c='a'
set @return=@return+@c
end
return(@return)
end
go
--测试
select dbo.fgetpy('东莞市') as 东莞市,dbo.fgetpy('ab中c国人') as 中国人
--删除拼音函数
drop function fgetpy
/*2.--获得汉字拼音的函数
需要创建一个拼音表,包含所有汉字的发音,这个可以通过转换全拼输入法的编码库得到,这里仅举了一个简单的例子.
--*/
--创建汉字拼音库
create table YingShe(CHR char(2),PY varchar(10))
insert YingShe
select '长','chang'
union all select '长','zhang'
union all select '城','cheng'
union all select '科','kel'
union all select '技','ji'
union all select '金','jin'
union all select '立','li'
union all select '章','zhang'
union all select '公','gong'
union all select '司','si'
/*--下面是两个函数,一个以表的形式返回某个字符串的全部拼音,一个返回某某个字符串的其中一个拼音
--*/
--获取汉字拼音的函数--返回所有的拼音
create function f_getpy_tb(@str varchar(100))
returns @tb table(re varchar(8000))
as
begin
declare @re table(id int,re varchar(8000)) --数据处理中间表
declare @i int,@ilen int,@splitchr varchar(1)
select @splitchr=' '--两个拼音之间的分隔符(目的是为了通用性考虑)
,@i=1,@ilen=len(@str)
insert into @re select @i,py from YingShe where chr=substring(@str,@i,1)
while @i<@ilen
begin
set @i=@i+1
insert into @re select @i,re+@splitchr+py from @re a,YingShe b
where a.id=@i-1 and b.chr=substring(@str,@i,1)
end
insert into @tb select re from @re where id=@i
return
end
go
--获取汉字拼音的函数--返回汉字的某一个拼音
create function f_getpy(@str varchar(100))
returns varchar(8000)
as
begin
declare @re varchar(8000)
declare @i int,@ilen int,@splitchr varchar(1)
select @splitchr=' '--两个拼音之间的分隔符(目的是为了通用性考虑)
,@i=1,@ilen=len(@str)
select @re=py from YingShe where chr=substring(@str,@i,1)
while @i<@ilen
begin
set @i=@i+1
select top 1 @re=@re+@splitchr+py
from YingShe where chr=substring(@str,@i,1)
end
return(@re)
end
go
--测试
--返回'长城'的所有可能拼音
select * from dbo.f_getpy_tb('长城')
--返回'长城'的拼音
select dbo.f_getpy('长城')
--删除拼音函数
drop function f_getpy,f_getpy_tb
分享到:
相关推荐
本资源“c++拼音处理类.rar”提供了一个专为C++设计的拼音处理类,它允许开发者轻松地进行汉字到拼音的转换,这对于需要处理中文文本的项目尤其有用。下面将详细探讨这个C++拼音处理类的功能、实现方式以及可能的...
php汉字拼音处理
PHP的UTF-8中文转拼音处理类,性能已经优化到极致,.优化了传统的拼音转换处理类的算法,专门针对UTF-8字符集进行处理,中文转换到拼音(每次处理一个字符)。如果你使用GBK或GB2312字符集,只需要去掉iconv函数,直接...
PHP的UTF-8中文转拼音处理类,性能已经优化到极致,.优化了传统的拼音转换处理类的算法,专门针对UTF-8字符集进行处理,中文转换到拼音(每次处理一个字符)。如果你使用GBK或GB2312字符集,只需要去掉iconv函数,直接...
基于Java实现的短语搜索,支持公司名称、地址名称等短语的搜索,支持自定义排序、拼音处理,内置jetty提供web接口 使用方法: cd phrase-search unix类操作系统执行: chmod +x startup.sh & ./startup.sh ...
- 在实现拼音互转功能时,可能会用到工厂模式(创建拼音转换对象)、单例模式(确保拼音库的唯一实例)或装饰者模式(扩展拼音处理的功能)等设计模式。 6. **异常处理**: - 对于无法转换的汉字或不规范的拼音...
简单好用的PHP-UTF8中文转拼音处理类,一个PHP类文件加载进来即可使用
例如,当用户在输入框中按下回车键时,触发查询事件,调用我们之前编写的拼音处理函数,然后在结果显示区域更新内容。 6. **错误处理**: 在实际应用中,我们需要考虑各种可能的错误情况,如无效的拼音简码、找不...
网上传的postgreSQL汉字转拼音的方法,是针对9.3的版本(相信你要是8.4的也搜到了但不能直接用,才来看我的),尝试了8.4的版本来做拼音处理。发现网上的《postgreSQL汉字转拼音》里面坑比较多,尝试纠正了一下,发...
汉字ios拼音转换。
总的来说,"java拼音搜索pinyin4j"这个项目结合了Java Web开发的基础知识和汉字拼音处理的专业工具,通过Servlet三层架构实现了一个高效的中文搜索功能。开发者可以在这个基础上进一步扩展,如增加拼音排序、语音...
- Delphi开发者可以利用第三方库,如Pinyin4j(Java版本的拼音处理库,但可以通过Delphi的JNI接口调用)或专门针对Delphi的本地化库,来实现汉字到拼音的转换。 - 也有一些开源项目,如OpenCC,提供了包括拼音转换...
在Java编程语言中,将汉字转换为拼音是一项常见的任务,特别是在处理中文文本、搜索引擎优化、语音合成或自然语言处理等领域。这个"Java汉字转拼音(支持多音字)"的主题涉及了如何在Java环境中实现这一功能,特别是...
另外,C#中也有一些库可以帮助我们处理汉字和拼音的转换,如Pinyin4Net,它可以简化拼音处理的步骤。通过引入这个库,我们可以方便地将汉字转换为拼音,并进行模糊搜索。 总结来说,实现"C#汉字或拼音模糊搜索"主要...
3. **规则引擎**:除了静态的拼音数据库,程序可能还包含了一套规则引擎,用于处理一些特殊情况,如成语、人名、地名等,这些词汇的拼音处理可能需要特殊的规则。 4. **用户界面**:为了方便用户使用,程序会设计一...
在JavaScript编程中,有时我们需要处理汉字与拼音之间的转换,例如在搜索、排序或者拼音输入法等场景。...希望本文所讲述的内容对你的JavaScript编程有所帮助,并激发你探索更多与汉字拼音处理相关的技术。
在易语言中,"取拼音模块"是一个非常实用的功能,它可以帮助程序员实现对汉字的拼音处理,这对于开发涉及汉字转换、拼音检索或者语音合成等应用非常有用。 取拼音模块的核心功能是对汉字进行分析,获取其对应的汉语...
在信息化时代,汉字的注音和拼音处理扮演着重要的角色。本文将深入探讨“汉字注音 拼音库 加标拼音”这一主题,旨在帮助读者理解如何利用工具高效地进行汉字注音工作,并创建拼音库,为后续的数据处理提供便利。 ...
开发者可以利用.NET的资源,如字符串操作、集合类以及多线程等,来实现高效的拼音处理和汉字转换。 至于项目中的`Pinyin4NET-master`,这很可能是该项目的源代码仓库名称,暗示了它是一个基于.NET的拼音处理库。...
标题中的“Java对拼音进行智能切分”涉及的是自然语言处理(NLP)中的一个关键问题,即中文字符到拼音的转换以及拼音的分词。...通过深入学习和实践,我们可以创建出更加智能和精准的拼音处理程序。