1. 程式人生 > >java中漢字轉換成拼音首字母

java中漢字轉換成拼音首字母

方法一:

最近做的B2B商城的專案,有這樣的一個需求,要求獲取使用者輸入的商品推薦型別漢字轉換成每個漢字的拼音首字母存入資料庫,在網上搜索了下,之看到了返回所有漢字的拼音,我在這裡做了一下修改,程式碼如下:

import java.io.Serializable;


 
  public class PinyinCode implements Serializable {
    public PinyinCode(String py, int cd) {
      pinyin = py;
      code = cd;
    }
    public String pinyin = null;
    public int code = 0;
  }

import java.util.ArrayList;
import test.PinyinCode;

public class JString {
 private static ArrayList pinyin = new ArrayList(395);

 
 public static String getPinyin(String word) {
  StringBuffer str = new StringBuffer();
  String pinyin = "";
  for (int i = 0; i < word.length(); i++) {
   pinyin = getPinyin2(getCode(word.charAt(i)));
   str.append(pinyin.charAt(0));
  }
  return str.toString();
 }

 
 protected static String getPinyin2(int hz) {
  String py = "";
  if (hz > 0 && hz < 160)
   py += hz;
  // else if (hz < -20319 || hz > -10247);
  else if (hz <= -10247 && hz >= -20319) {
   PinyinCode pc = null;
   int i = pinyin.size() - 1;
   for (; i >= 0; i--) {
    pc = (PinyinCode) pinyin.get(i);
    if (pc.code <= hz)
     break;
   }
   if (i >= 0)
    py = pc.pinyin;
  }
  return py;
 }

 
 protected static int getCode(char cc) {
  byte[] bs = String.valueOf(cc).getBytes();
  int code = (bs[0] << 8) | (bs[1] & 0x00FF);
  if (bs.length < 2)
   code = (int) cc;
  bs = null;
  return code;
 }

 static {
  pinyin.add(new PinyinCode("a", -20319));
  pinyin.add(new PinyinCode("ai", -20317));
  pinyin.add(new PinyinCode("an", -20304));
  pinyin.add(new PinyinCode("ang", -20295));
  pinyin.add(new PinyinCode("ao", -20292));
  pinyin.add(new PinyinCode("ba", -20283));
  pinyin.add(new PinyinCode("bai", -20265));
  pinyin.add(new PinyinCode("ban", -20257));
  pinyin.add(new PinyinCode("bang", -20242));
  pinyin.add(new PinyinCode("bao", -20230));
  pinyin.add(new PinyinCode("bei", -20051));
  pinyin.add(new PinyinCode("ben", -20036));
  pinyin.add(new PinyinCode("beng", -20032));
  pinyin.add(new PinyinCode("bi", -20026));
  pinyin.add(new PinyinCode("bian", -20002));
  pinyin.add(new PinyinCode("biao", -19990));
  pinyin.add(new PinyinCode("bie", -19986));
  pinyin.add(new PinyinCode("bin", -19982));
  pinyin.add(new PinyinCode("bing", -19976));
  pinyin.add(new PinyinCode("bo", -19805));
  pinyin.add(new PinyinCode("bu", -19784));
  pinyin.add(new PinyinCode("ca", -19775));
  pinyin.add(new PinyinCode("cai", -19774));
  pinyin.add(new PinyinCode("can", -19763));
  pinyin.add(new PinyinCode("cang", -19756));
  pinyin.add(new PinyinCode("cao", -19751));
  pinyin.add(new PinyinCode("ce", -19746));
  pinyin.add(new PinyinCode("ceng", -19741));
  pinyin.add(new PinyinCode("cha", -19739));
  pinyin.add(new PinyinCode("chai", -19728));
  pinyin.add(new PinyinCode("chan", -19725));
  pinyin.add(new PinyinCode("chang", -19715));
  pinyin.add(new PinyinCode("chao", -19540));
  pinyin.add(new PinyinCode("che", -19531));
  pinyin.add(new PinyinCode("chen", -19525));
  pinyin.add(new PinyinCode("cheng", -19515));
  pinyin.add(new PinyinCode("chi", -19500));
  pinyin.add(new PinyinCode("chong", -19484));
  pinyin.add(new PinyinCode("chou", -19479));
  pinyin.add(new PinyinCode("chu", -19467));
  pinyin.add(new PinyinCode("chuai", -19289));
  pinyin.add(new PinyinCode("chuan", -19288));
  pinyin.add(new PinyinCode("chuang", -19281));
  pinyin.add(new PinyinCode("chui", -19275));
  pinyin.add(new PinyinCode("chun", -19270));
  pinyin.add(new PinyinCode("chuo", -19263));
  pinyin.add(new PinyinCode("ci", -19261));
  pinyin.add(new PinyinCode("cong", -19249));
  pinyin.add(new PinyinCode("cou", -19243));
  pinyin.add(new PinyinCode("cu", -19242));
  pinyin.add(new PinyinCode("cuan", -19238));
  pinyin.add(new PinyinCode("cui", -19235));
  pinyin.add(new PinyinCode("cun", -19227));
  pinyin.add(new PinyinCode("cuo", -19224));
  pinyin.add(new PinyinCode("da", -19218));
  pinyin.add(new PinyinCode("dai", -19212));
  pinyin.add(new PinyinCode("dan", -19038));
  pinyin.add(new PinyinCode("dang", -19023));
  pinyin.add(new PinyinCode("dao", -19018));
  pinyin.add(new PinyinCode("de", -19006));
  pinyin.add(new PinyinCode("deng", -19003));
  pinyin.add(new PinyinCode("di", -18996));
  pinyin.add(new PinyinCode("dian", -18977));
  pinyin.add(new PinyinCode("diao", -18961));
  pinyin.add(new PinyinCode("die", -18952));
  pinyin.add(new PinyinCode("ding", -18783));
  pinyin.add(new PinyinCode("diu", -18774));
  pinyin.add(new PinyinCode("dong", -18773));
  pinyin.add(new PinyinCode("dou", -18763));
  pinyin.add(new PinyinCode("du", -18756));
  pinyin.add(new PinyinCode("duan", -18741));
  pinyin.add(new PinyinCode("dui", -18735));
  pinyin.add(new PinyinCode("dun", -18731));
  pinyin.add(new PinyinCode("duo", -18722));
  pinyin.add(new PinyinCode("e", -18710));
  pinyin.add(new PinyinCode("en", -18697));
  pinyin.add(new PinyinCode("er", -18696));
  pinyin.add(new PinyinCode("fa", -18526));
  pinyin.add(new PinyinCode("fan", -18518));
  pinyin.add(new PinyinCode("fang", -18501));
  pinyin.add(new PinyinCode("fei", -18490));
  pinyin.add(new PinyinCode("fen", -18478));
  pinyin.add(new PinyinCode("feng", -18463));
  pinyin.add(new PinyinCode("fo", -18448));
  pinyin.add(new PinyinCode("fou", -18447));
  pinyin.add(new PinyinCode("fu", -18446));
  pinyin.add(new PinyinCode("ga", -18239));
  pinyin.add(new PinyinCode("gai", -18237));
  pinyin.add(new PinyinCode("gan", -18231));
  pinyin.add(new PinyinCode("gang", -18220));
  pinyin.add(new PinyinCode("gao", -18211));
  pinyin.add(new PinyinCode("ge", -18201));
  pinyin.add(new PinyinCode("gei", -18184));
  pinyin.add(new PinyinCode("gen", -18183));
  pinyin.add(new PinyinCode("geng", -18181));
  pinyin.add(new PinyinCode("gong", -18012));
  pinyin.add(new PinyinCode("gou", -17997));
  pinyin.add(new PinyinCode("gu", -17988));
  pinyin.add(new PinyinCode("gua", -17970));
  pinyin.add(new PinyinCode("guai", -17964));
  pinyin.add(new PinyinCode("guan", -17961));
  pinyin.add(new PinyinCode("guang", -17950));
  pinyin.add(new PinyinCode("gui", -17947));
  pinyin.add(new PinyinCode("gun", -17931));
  pinyin.add(new PinyinCode("guo", -17928));
  pinyin.add(new PinyinCode("ha", -17922));
  pinyin.add(new PinyinCode("hai", -17759));
  pinyin.add(new PinyinCode("han", -17752));
  pinyin.add(new PinyinCode("hang", -17733));
  pinyin.add(new PinyinCode("hao", -17730));
  pinyin.add(new PinyinCode("he", -17721));
  pinyin.add(new PinyinCode("hei", -17703));
  pinyin.add(new PinyinCode("hen", -17701));
  pinyin.add(new PinyinCode("heng", -17697));
  pinyin.add(new PinyinCode("hong", -17692));
  pinyin.add(new PinyinCode("hou", -17683));
  pinyin.add(new PinyinCode("hu", -17676));
  pinyin.add(new PinyinCode("hua", -17496));
  pinyin.add(new PinyinCode("huai", -17487));
  pinyin.add(new PinyinCode("huan", -17482));
  pinyin.add(new PinyinCode("huang", -17468));
  pinyin.add(new PinyinCode("hui", -17454));
  pinyin.add(new PinyinCode("hun", -17433));
  pinyin.add(new PinyinCode("huo", -17427));
  pinyin.add(new PinyinCode("ji", -17417));
  pinyin.add(new PinyinCode("jia", -17202));

相關推薦

java漢字轉換拼音字母

方法一: 最近做的B2B商城的專案,有這樣的一個需求,要求獲取使用者輸入的商品推薦型別漢字轉換成每個漢字的拼音首字母存入資料庫,在網上搜索了下,之看到了返回所有漢字的拼音,我在這裡做了一下修改,程式碼如下: import java.io.Serializable;    

excel漢字轉換拼音--字母

Excel中把漢字轉換成拼音--首字母 1.啟動Excel 2003(其它版本請仿照操作),開啟相應的工作表; 2.執行“工具→巨集→Visual Basic編輯器”命令(或者直接按“Alt+

java漢字轉換拼音字母

今天講講如何把中文的漢字轉換為拼音首字母,如"中國"轉換為“zg”,這裡要用到一個開源jar包【pinyin4j】 <span style="font-size:14px;">import net.sourceforge.pinyin4j.PinyinHelp

SQL Server漢字轉換拼音

/****** Object:  UserDefinedFunction [dbo].[f_GetPinYin]    Script Date: 11/01/2018 21:00:46 ******/ SET ANSI_NULLS ON GO SET QUOTED_ID

SQL將用戶表已存在的數據所有姓名(漢字轉換拼音字母

var 語句 ont htm bold varchar 實現 where into 實現方法: --函數 Create function [dbo].[fn_GetPy](@str nvarchar(4000)) returns nvarchar(4000) --

Java將中文轉換拼音,用於字母的模糊查詢

/** * 將漢字轉換為拼音 * @author Champion.Wong * */ public class Trans2PinYin { private static int[] pyvalue =

Python漢字轉換拼音

split() 圖片 git log hub 找到 轉換 res 輸出 轉載自: https://www.cnblogs.com/code123-cc/p/4822886.html 最近在使用Python做項目時,需要將漢字轉化成對應的拼音.在Github上找到了一

Asp.net漢字轉換成為拼音

.text lec .org ole oai www youdao git program 1.應用場景 將漢字轉換為拼音(eg:"我愛你"———>"WOAINI") 取各個漢字的首字母(eg:"我是中國人"———>"WSZGR") 2.涉及到的組件 組件

漢字轉換拼音

// 1.匯入相應的jar包(pinying4j) // 2.寫入相應的程式碼 public class Test { // 返回全拼 public static String getPingYin(String src) { char[] t1 = null;

自定義UDF函式:將漢字轉換拼音

工作需求要講漢字轉換成拼音,自定義UDF函式import net.sourceforge.pinyin4j.PinyinHelper; import net.sourceforge.pinyin4j.f

java漢字轉換漢語拼音(pinyin4j.jar的使用及原理)

一、思路介紹 見漢字的unicode碼和漢語拼音對應,這也是pinyin4j的思路 二、pinyin4j介紹 pinyin4j使用了一個.txt的文字檔案(uicode_to_hanyu_pinyin.txt)用來儲存漢字unicode編碼與拼音的對應關係,通過讀取該配置

將中文漢字轉換拼音(全拼)

using System.Globalization; using System.Text; using System.Text.RegularExpressions; /// <summary> /// 漢字轉拼音類 /// </summary

javascript漢字轉換拼音

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xm

JAVA實現漢字轉換拼音 pinyin4j/JPinyin

在專案中經常會遇到需求使用者輸入漢字後轉換為拼音的場景,比如說通訊錄,就會要求按名字首字元發音排序,如果自己寫實現這方面的功能是個很好大的工程,還好網上有公開的第三方jar支援轉換,結合網上很多前輩的程式碼,copy了兩個簡單的工具方法,供參考 第一個是使用pinyin4j

Java漢字轉換URL編碼

String abcd = "中文";//或者使用abcd = "\u0061\u4E2D\u6587"; System.out.println(java.net.URLEncoder

javascript漢字轉換拼音(部分)

<script> var strGB="啊阿埃挨哎唉哀皚癌藹矮艾礙愛隘鞍氨安俺按暗岸胺案骯昂盎凹敖熬翱襖傲奧懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙壩霸罷爸白柏百擺佰敗拜稗斑班搬扳般頒板版扮拌伴瓣半辦絆邦幫梆榜膀綁棒磅蚌鎊傍謗苞胞包褒剝薄雹保堡飽寶抱報暴豹鮑爆杯碑悲

oracle資料庫漢字轉化拼音

select FN_GETPY('漢字',1) from dual; --HANZI select FN_GETPY('漢字',2) from dual; --HanZi select FN_GETPY('漢字',3) from dual;--hz select FN_

根據漢字,獲取拼音字母(轉)

<mce:script  language="vbscript"><!--   function vbChr(c)    vbChr = chr(c)    end function   function vbAsc(n)    vbAsc = asc(n)    end f

.NET 把字串轉換拼音 c# 和vb 漢字轉換拼音

目標: 簡單的來說就是把一個字串轉換成拼音字串 漢字轉換成拼音 其他的字元不做變化。 起先 我有一個js版的轉換版本 裡面要用到一個vb的系統函式 Asc() . 為什麼 要用到這個函式呢!我查了好多資料 這個函式能夠準確地返回字元碼。js中沒有該功能的函式,使用者想要使用必

Oracle提取文字符串拼音字母函數

oracl code 通過 sort target cti arch clas pinyin 通過oracle的NLSSORT函數對漢字按照拼音排序,然後根據漢字的區間返回對應的首字母。 效果1,獲取拼音簡碼: 效果2,獲取姓名首字母: 創建函數: /*