这几天想做一个这样子的功能:在查询客户信息的时候,可以直接根据客户姓名的拼音缩写进行,例如,输入 HZ 就可以查询到姓名为 【黄镇】的客户。

在网上查询到的比较好的做法是在客户信息字段中加上一个拼音缩写字段,在存储的时候,可以把客户姓名的汉字拼音缩写字段存储到一个单独的数据库字段中。

在查询的时候,直接根据缩写匹配就可以了。

下面是根据汉字姓名输出 首字母 的程序:

import java.io.UnsupportedEncodingException;

/**

* 取得给定汉字串的首字母串,即声母串

* Title: ChineseCharToEn

* @date 2004-02-19 注:只支持GB2312字符集中的汉字

*/

public final class ChineseCharToEn {

private final static int[] li_SecPosValue = { 1601, 1637, 1833, 2078, 2274,

2302, 2433, 2594, 2787, 3106, 3212, 3472, 3635, 3722, 3730, 3858,

4027, 4086, 4390, 4558, 4684, 4925, 5249, 5590 };

private final static String[] lc_FirstLetter = { "a", "b", "c", "d", "e",

"f", "g", "h", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s",

"t", "w", "x", "y", "z" };

/**

* 取得给定汉字串的首字母串,即声母串

* @param str 给定汉字串

* @return 声母串

*/

public String getAllFirstLetter(String str) {

if (str == null || str.trim().length() == 0) {

return "";

}

String _str = "";

for (int i = 0; i < str.length(); i++) {

_str = _str + this.getFirstLetter(str.substring(i, i + 1));

}

return _str;

}

/**

* 取得给定汉字的首字母,即声母

* @param chinese 给定的汉字

* @return 给定汉字的声母

*/

public String getFirstLetter(String chinese) {

if (chinese == null || chinese.trim().length() == 0) {

return "";

}

chinese = this.conversionStr(chinese, "GB2312", "ISO8859-1");

if (chinese.length() > 1) // 判断是不是汉字

{

int li_SectorCode = (int) chinese.charAt(0); // 汉字区码

int li_PositionCode = (int) chinese.charAt(1); // 汉字位码

li_SectorCode = li_SectorCode - 160;

li_PositionCode = li_PositionCode - 160;

int li_SecPosCode = li_SectorCode * 100 + li_PositionCode; // 汉字区位码

if (li_SecPosCode > 1600 && li_SecPosCode < 5590) {

for (int i = 0; i < 23; i++) {

if (li_SecPosCode >= li_SecPosValue[i]

&& li_SecPosCode < li_SecPosValue[i + 1]) {

chinese = lc_FirstLetter[i];

break;

}

}

} else // 非汉字字符,如图形符号或ASCII码

{

chinese = this.conversionStr(chinese, "ISO8859-1", "GB2312");

chinese = chinese.substring(0, 1);

}

}

return chinese;

}

/**

* 字符串编码转换

* @param str 要转换编码的字符串

* @param charsetName 原来的编码

* @param toCharsetName 转换后的编码

* @return 经过编码转换后的字符串

*/

private String conversionStr(String str, String charsetName,String toCharsetName) {

try {

str = new String(str.getBytes(charsetName), toCharsetName);

} catch (UnsupportedEncodingException ex) {

System.out.println("字符串编码转换异常:" + ex.getMessage());

}

return str;

}

public static void main(String[] args) {

ChineseCharToEn cte = new ChineseCharToEn();

System.out.println("获取拼音首字母:"+ cte.getAllFirstLetter("黄镇"));

}

}

java 输入人名输出_Java 输入汉字姓名 输出 姓名拼音 首字母缩写组合相关推荐

  1. Java 输入汉字姓名 输出 姓名拼音 首字母缩写组合

    这几天想做一个这样子的功能:在查询客户信息的时候,可以直接根据客户姓名的拼音缩写进行,例如,输入 HZ 就可以查询到姓名为 [黄镇]的客户. 在网上查询到的比较好的做法是在客户信息字段中加上一个拼音缩 ...

  2. oracle实现将汉字字符串转换成拼音首字母缩写

    1.定义一个函数: CREATE OR REPLACE FUNCTION F_GET_PYJM(P_NAME IN VARCHAR2) RETURN VARCHAR2 ASV_COMPARE VARC ...

  3. 姓名拼音首字母缩写_企业开发人员,首字母缩写词和歧视

    姓名拼音首字母缩写 在过去的几年中,我的客户从大多数中型市场公司和一些初创公司转变为几乎完全是初创公司,这种转变导致客户要求的语言范围更加广泛. 在我职业生涯的前10年中,我的业务约占Java的95% ...

  4. 姓名拼音首字母缩写_公司首字母缩写

    姓名拼音首字母缩写 首字母缩略词可以很容易地提醒您扩展主题的引用,并且显然可以以某种方式对其进行概括,这尤其有用,尤其是当您可以将它们用作新词来快速表达关系并直截了当地时(例如提及SLA,KPI,SO ...

  5. 姓名拼音首字母缩写_API代表什么? 英文首字母缩写词的定义。

    姓名拼音首字母缩写 Nope, API doesn't stand for Apple Pie Inside.

  6. java取拼音首字母_java怎么根据汉字获取字的拼音首字母

    展开全部 这里可以使用62616964757a686964616fe58685e5aeb931333363393633 pinyin4. jar包来进行转化,pinyin4. jar可以自行在网上进行 ...

  7. java实现中文汉字转中文全拼和拼音首字母缩写的方法

    用户为新建产品命名时通常使用中文,而假如后台需要根据用户输入的中文名称进行字段拼接时,就需要将中文汉字转化为中文.所以就用到了pinyin4j这个java工具包(官方网站:http://pinyin4 ...

  8. input框输入中文内容,另一个input框中时时显示转换后的拼音首字母缩写

    最近项目中需要完成在input标签内输入中文字符,动态的在另一个input中时时显示中文字符的首字母缩写(首字母都是大写).直接上代码: value属性可以写成value="",图 ...

  9. oracle中fn_getpy函数,SQL Server根据汉字笔划和取得拼音首字母进行排序

    select a.cnword from #t1 a left join #t1 b on a.id=b.id-1 and a.code where b.code is null order by a ...

  10. SQL Server根据汉字笔划和取得拼音首字母进行排序

    做房产网站,已经有了小区模板表,将小区的名称一律输入数据表中供登记用户进行选择.发现一个排序的问题:小区名称加载至下拉列表中时默认只是按照主键进行了升序排序,无任何规律,名称找起来非常麻烦.如何按小区 ...

最新文章

  1. 独家 | Tableau小技巧之分离Box plot和Unit Histogram(附链接)
  2. 迁移数据中心的三大风险与应对策略
  3. 解决在Yii2中使用PHPExcel出现Class ‘app\controllers\PHPExcel‘ not found的问题
  4. Starry Night [USACO]
  5. 已选商品数量总计如何实现_英国VAT新政临近,没有API如何添加或修改税率?教程来了!...
  6. ThreadLocal原理
  7. C++library Sort库排序的实现算法(附完整源码)
  8. 韩研究人员声称:创造出了一块“不可破坏”的芯片!
  9. 程序崩溃 分析工具_程序分析工具| 软件工程
  10. [Redux/Mobx] Context api可以取代Redux吗?为什么?
  11. C++ 程序运行后的内存模型
  12. python快速接手别人的代码_十步教你如何接手别人的代码!
  13. python 列表推导
  14. epoll编程实例客户端_网络编程:epoll
  15. 联想拯救者Y7000P拆机清灰学习
  16. WSJ在隐私是否真的那么可怕
  17. iOS 3D Touch之主屏幕快捷操作(Quick Actions)
  18. __stack_chk_fail问题及解决方案
  19. Layui多文件上传,java后台(servlet实现)
  20. 完成清除工作,可以Destory窗口标志

热门文章

  1. xwt100编程器使用方法与xtw100没有找到编程器解决办法
  2. 【web前端特效源码】使用HTML5+CSS3+JavaScript制作一个进度条动画效果~适合初学者~超简单~ |前端开发|IT软件
  3. EURA欧瑞E1000系列变频器使用PID实现恒压供水功能的相关参数设置及接线
  4. 腾达U12无线网卡驱动安装教程
  5. 图像去噪序列——BM3D图像去噪模型实现
  6. mysql 批量插入
  7. JPG/PNG转SVG矢量格式
  8. 在线预览PDF(pdfobject)
  9. CCNA考试题库中英文翻译版及答案3
  10. 轻松让Ubunt虚拟机访问windows宿主机(本地硬盘)