android 获取拼音首字母,Android开发 - 汉字转拼音首字母

概述

工作中经常会遇到的一些排序问题,比如 按汉字的拼音首字母排序,比如人名排序等,就要用到下面的方法了,思路:

1.获得汉字

2.将汉字转换成首字母,并记录下(必要时保存到数据库)

3.按首字母进行排序并展示

演示

控制台输出演示:

汉字转首字母演示,请输入汉字: 4654*&&^_FDSF你i好3啊>?>?>(*33P{}{

直接转换convertTo: 4654*&&^_FDSFnih3a>?>?>(*33P{}{

保留一些字符convertAndClear: 4654&&^_FDSFnih3a>?>?>(33P{}{

仅保留字母和数字convertAndClearAll: 4654FDSFnih3a33P

实现

代码如下,直接复制后就能使用:

package pinyin;

import java.util.Scanner;

public class Main {

public static void main(String[] args) {

Scanner sc = new Scanner(System.in);

System.out.println("汉字转首字母演示,请输入汉字:");

String str = sc.next();

String py1 = ChineseToFirstCharUtil.convertTo(str);

String py2 = ChineseToFirstCharUtil.convertAndClear(str);

String py3 = ChineseToFirstCharUtil.convertAndClearAll(str);

System.out.print("\r\n直接转换convertTo:" + py1);

System.out.print("\r\n保留一些字符convertAndClear:" + py2);

System.out.print("\r\n仅保留字母和数字convertAndClearAll:" + py3);

}

}

package pinyin;

/**

* 汉字转首字母缩写

*

* @author 张云飞vir基于网上获得的资料的修改2015-3-3 http://home.cnblogs.com/u/vir56k/

*

*/

public class ChineseToFirstCharUtil {

/**

* 汉字转拼音缩写

*

* @param str

* 要转换的汉字字符串

* @return String 拼音缩写

*/

public static String convertTo(String str) {

String tempStr = "";

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

char c = str.charAt(i);

if (c >= 33 && c <= 126) {// 字母和符号原样保留

tempStr += String.valueOf(c);

} else {// 累加拼音声母

tempStr += getPYChar(String.valueOf(c));

}

}

return tempStr;

}

/**

* 汉字转拼音缩写,清理无效字符(保留一些键盘字符)

* @param str 汉字

* @return String 缩写

*/

public static String convertAndClear(String str) {

return convertTo(str).replace("*", "");

}

/**

* 汉字转拼音缩写,清理无效字符(清理任何非数字和字母)

* @param str 汉字

* @return String 缩写

*/

public static String convertAndClearAll(String str) {

String str1 = convertTo(str).replace("*", "");

StringBuilder sb = new StringBuilder();

for(char c : str1.toCharArray()){

if((c>=48 && c<= 57) || (c>=65 && c<= 90) || (c>=97 && c<= 122)){

sb.append(c);

}

}

return sb.toString();

}

/**

* 取单个字符的拼音声母

*

* @param c

* //要转换的单个汉字

* @return String 拼音声母

*/

private static String getPYChar(String c) {

byte[] array = new byte[2];

array = String.valueOf(c).getBytes();

int i = (short) (array[0] - '\0' + 256) * 256

+ ((short) (array[1] - '\0' + 256));

if (i < 0xB0A1)

return "*";

if (i < 0xB0C5)

return "a";

if (i < 0xB2C1)

return "b";

if (i < 0xB4EE)

return "c";

if (i < 0xB6EA)

return "d";

if (i < 0xB7A2)

return "e";

if (i < 0xB8C1)

return "f";

if (i < 0xB9FE)

return "g";

if (i < 0xBBF7)

return "h";

if (i < 0xBFA6)

return "j";

if (i < 0xC0AC)

return "k";

if (i < 0xC2E8)

return "l";

if (i < 0xC4C3)

return "m";

if (i < 0xC5B6)

return "n";

if (i < 0xC5BE)

return "o";

if (i < 0xC6DA)

return "p";

if (i < 0xC8BB)

return "q";

if (i < 0xC8F6)

return "r";

if (i < 0xCBFA)

return "s";

if (i < 0xCDDA)

return "t";

if (i < 0xCEF4)

return "w";

if (i < 0xD1B9)

return "x";

if (i < 0xD4D1)

return "y";

if (i < 0xD7FA)

return "z";

return "*";

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Android 中的中文拼音,可以通过使用第三方库来实现首字母大写的功能。其中比较常用的是 Pinyin4j 和 HanziToPinyin 这两个库。 Pinyin4j 是一个开源的 Java 拼音换类库,可以将中文换为拼音,并且提供了将拼音首字母大写的方法。使用 Pinyin4j 的首要步骤是添加该库的依赖,然后在代码中使用该库提供的方法进行换。具体步骤如下: 1. 在项目的 build.gradle 文件中的 dependencies 节点中添加依赖项: implementation 'com.belerweb:pinyin4j:2.5.0' 2. 在代码中导入相关的类: import net.sourceforge.pinyin4j.PinyinHelper; 3. 使用以下代码将中文换为拼音首字母大写: String chineseText = "你好"; String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(chineseText.charAt(0)); String pinyin = pinyinArray[0].toUpperCase(); 使用 HanziToPinyin 也是类似的步骤,但是使用的是另一个库。具体步骤如下: 1. 在项目的 build.gradle 文件中的 dependencies 节点添加依赖项: implementation 'com.github.promeg:tinypinyin:2.0.4' 2. 在代码中导入相关的类: import com.github.promeg.pinyinhelper.Pinyin; 3. 使用以下代码将中文换为拼音首字母大写: String chineseText = "你好"; String pinyin = Pinyin.toPinyin(chineseText.charAt(0)).toUpperCase(); 以上就是在 Android 中实现中文拼音首字母大写的方法,通过使用第三方库,可以轻松地实现这一功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值