Java_获取汉字的汉语拼音首字母Java版(转)

简介: Java_获取汉字的汉语拼音首字母Java版(转)
public class GetFirstLetter {   
  
 private static final int GB_SP_DIFF = 160;   
 private static final int[] secPosvalueList = {   
       1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787,   
       3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027, 4086,   
       4390, 4558, 4684, 4925, 5249, 5600};   
 private static final char[] firstLetter = {   
       'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j',   
       'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',   
       't', 'w', 'x', 'y', 'z'};   
  
 public static String getFirstLetter(String oriStr) {   
     String str = oriStr.toLowerCase();   
     StringBuffer buffer = new StringBuffer();   
     char ch;   
     char[] temp;   
     for (int i = 0; i < str.length(); i++) {    
       ch = str.charAt(i);   
       temp = new char[] {   
           ch};   
       byte[] uniCode = new String(temp).getBytes();   
       if (uniCode[0] < 128 && uniCode[0] > 0) {   
         buffer.append(temp);   
       }   
       else {   
         buffer.append(convert(uniCode));   
       }   
     }   
     return buffer.toString().substring(0,1);   
 }   
  
 private static char convert(byte[] bytes) {   
  
     char result = '-';   
     int secPosvalue = 0;   
     int i;   
     for (i = 0; i < bytes.length; i++) {   
       bytes[i] -= GB_SP_DIFF;   
     }   
     secPosvalue = bytes[0] * 100 + bytes[1];   
     for (i = 0; i < 23; i++) {   
       if (secPosvalue >= secPosvalueList[i] &&   
           secPosvalue < secPosvalueList[i + 1]) {   
         result = firstLetter[i];   
         break;   
       }   
     }   
     return result;   
 }   
    
 public static void main(String s[]){   
     
  System.out.print(getFirstLetter("好"));   
 }  


相关文章
|
Java
JAVA随机生成一个汉字的方法和代码
JAVA随机生成一个汉字的方法和代码
240 1
|
Java
Java正则表达式去掉非汉字字符
【5月更文挑战第11天】Java正则表达式去掉非汉字字符
311 3
|
JSON Java fastjson
Java【问题 06】一次解决JSON.toJSONString和@RestController首字母大小写问题(特指属性首字母大写变小写)
Java【问题 06】一次解决JSON.toJSONString和@RestController首字母大小写问题(特指属性首字母大写变小写)
1302 0
|
Java
2828. 判别首字母缩略词 --力扣 --JAVA
给你一个字符串数组 words 和一个字符串 s ,请你判断 s 是不是 words 的 首字母缩略词 。 如果可以按顺序串联 words 中每个字符串的第一个字符形成字符串 s ,则认为 s 是 words 的首字母缩略词。例如,"ab" 可以由 ["apple", "banana"] 形成,但是无法从 ["bear", "aardvark"] 形成。 如果 s 是 words 的首字母缩略词,返回 true ;否则,返回 false 。
106 0
|
Java 容器
idea中关于java的图形化界面编程awt_container容器中Button(按钮)上汉字是乱码或者小方框的解决方法
idea中关于java的图形化界面编程awt_container容器中Button(按钮)上汉字是乱码或者小方框的解决方法
240 0
|
Java
Java工具类——汉字转拼音
写了一个根据汉字获取拼音字符串的工具类
338 0
|
Java Maven
Java代码获取汉字的拼音或汉字首字母
今天写项目时,有需要将输入的汉字转化为拼音和提取每个汉字首字母的功能,随手记录分享一下
464 0
|
1月前
|
JSON 网络协议 安全
【Java】(10)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
136 1
|
1月前
|
JSON 网络协议 安全
【Java基础】(1)进程与线程的关系、Tread类;讲解基本线程安全、网络编程内容;JSON序列化与反序列化
几乎所有的操作系统都支持进程的概念,进程是处于运行过程中的程序,并且具有一定的独立功能,进程是系统进行资源分配和调度的一个独立单位一般而言,进程包含如下三个特征。独立性动态性并发性。
157 1
|
2月前
|
数据采集 存储 弹性计算
高并发Java爬虫的瓶颈分析与动态线程优化方案
高并发Java爬虫的瓶颈分析与动态线程优化方案