package com.example.dabutaizha.lines;

import java.io.UnsupportedEncodingException;

/**

* Copyright (C) 2018 Unicorn, Inc.

* Description :

* Created by dabutaizha on 2018/4/8 下午3:56.

*/

public class ChineseCharToEnUtil {

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);

}

}

chinese = chinese.toUpperCase();

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;

}

}



更多源码 | 好库简介 | 网站地图 | 帮助中心 | 版权说明

Copyright© 2009-2012 OKBASE.NET All Rights Reserved 好库网 版权所有

android java char_Android句子迷客户端相关推荐

  1. android开发我的新浪微博客户端-用户授权页面UI篇(3.1)

    看上面的图,其实这个页面的UI实现不复杂,首先是背景部分的实现这个参考 android开发我的新浪微博客户端-载入页面UI篇(1.1),重点来讲讲这个半透明的弹出对话框窗口是如何实现的,首先新建名为A ...

  2. android处理服务器的集合,android集合SSH搭建服务器客户端请求

    android集合SSH搭建服务器客户端请求 (2012-06-14 06:21:53) 标签: android 服务器 杂谈 android集合SSH搭建服务器客户端请求小弟以前是学的J2EE,由于 ...

  3. java集成jpush实现客户端推送

    代码地址如下: http://www.demodashi.com/demo/13700.html 前言 java 集成jpush 实现客户端推送 ###一.准备工作 开发环境: jdk1.6 Ecli ...

  4. Android/Java面试题,边面试边成长,为了应试而应试

    Android/Java面试题,边面试边成长,为了应试而应试 从今天起,所有面试或遇到过的面试题,都整理到此文章下,提醒自己时刻要学习,同时分享给各位.[部分网上整理] Java基础 1,Java中一 ...

  5. 用 Java 实现一个远程控制客户端

    通过客户端远程操作其他电脑,关机,重启,注销等!是不是都很神奇?!这种正式软件常用于多媒体教学.远程协助.远程遥控设备等.这里我们通过案例,手把手一步步的实现整个过程,自己完成案例后,自然就不会再感觉 ...

  6. Android java对接建行支付SDK

    Android java 对接建行支付 准备工作 创建常量类 编写支付工具类 遇到的坑 用到的工具类 准备工作 在对接建行支付之前,需要准备好这几个东西:商户代码.商户柜台代码.分行代码.公钥 创建常 ...

  7. Android高仿网易新闻客户端之动态添加标签

    承接上一篇文章:Android高仿网易新闻客户端之首页,今天来实现动态添加标签效果. 动态标签页是一个流式布局,实现了宽度自动换行高度自动分配的功能,代码如下: FlowLayout.java pac ...

  8. android毕业设计——基于Android+Java+Python的手机端办公自动化OA系统设计与实现(毕业论文+程序源码)——办公自动化OA系统

    基于Android+Java+Python的手机端办公自动化OA系统设计与实现(毕业论文+程序源码) 大家好,今天给大家介绍基于Android+Java+Python的手机端办公自动化OA系统设计与实 ...

  9. 开篇--基于Android的小巫新闻客户端开发

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! 开篇-- ...

  10. android java rsa加密_Android RSA与Java RSA加密不一样标准产生问题的解决方法

    最近作一个基于android的客户端,客户端与Java服务器 (MyEclipse自带的Tomcat服务器)的通讯须要实施安全方案.而本人是使用非对称密钥来对数据进行加密的,客户端用公钥加密,服务器用 ...

最新文章

  1. kali开启禁止或删除ssh 开机启动
  2. python turtle画气球-micro:bit + LoRa 实现气球追踪
  3. 一个用WPF做的简单计算器源代码
  4. 电脑编程教学_梁溪区在线少儿编程哪个机构比较靠谱
  5. SQL Server 磁盘空间告急(磁盘扩容)转载
  6. 2018android wear手表,谷歌正开发三款智能手表 Wear OS系统逐步脱离Android范畴
  7. ios html下拉刷新,Lottie_ios 实现下拉刷新
  8. 计算机网络-基本概念(8)【网络层】集线器、网桥和路由器的区别
  9. C语言贪吃蛇如何让蛇一直前进,c++贪吃蛇代码中,哪条代码是让蛇知道前进的
  10. python将argv作为参数,Python当中的命令行参数sys.argv[]的使用方法
  11. http常见的get请求方式和set请求方式。
  12. 排烟管道过长怎么处理_厨房装修失误导致烟道过长该怎么办?
  13. 阿里云环境迁移记录 - RabbitMQ集群搭建
  14. 短信sdk:使用阿里云短信sdk
  15. 机器学习实战-使用matplotlib绘制决策树
  16. POJ 1273 Dinic
  17. Codeforces Round #548 (Div. 2) C. Edgy Trees(并查集+快速幂)
  18. 华为南研所2015年面试经历总结
  19. python知网查重_学长学姐使用知网查重的经验之谈
  20. 机器学习期末简答总结

热门文章

  1. Restful API详解
  2. 操作Windows文件夹时,弹出文件夹正在使用,操作无法完成【解决】
  3. mock和spy的不同点
  4. iexplore出错
  5. amr转换mp3格式文件
  6. 探索性数据分析(四)——特征工程(对数转换、标准化/归一化、离散化、标签编码、独热编码、Dummy变量)
  7. vue实现拍照人脸识别功能带人脸选中框
  8. 如何运用阿里巴巴国际站进行数据分析?
  9. 360主机卫士正式上线
  10. 电子嵌入式硬件软件培训