package com.zgl.struts.action;
public class StringUtil
{
// 国标码和区位码转换常量
static final int GB_SP_DIFF = 160;
// 存放国标一级汉字不同读音的起始区位码
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 };
// 存放国标一级汉字不同读音的起始区位码对应读音
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 StringUtil()
{
}
// 获取一个字符串的拼音码
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++)
{ // 依次处理str中每个字符
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();
}
/**
* 获取一个汉字的拼音首字母。 GB码两个字节分别减去160,转换成10进制码组合就可以得到区位码
* 例如汉字“你”的GB码是0xC4/0xE3,分别减去0xA0(160)就是0x24/0x43
* 0x24转成10进制就是36,0x43是67,那么它的区位码就是3667,在对照表中读音为‘n’
*/
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[] args) {
String a="周";
System.out.println(a.getBytes()[0]+""+a.getBytes()[1]);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
AjaxDemo.rar (31个子文件)
AjaxDemo
.mystrutsdata 262B
.myumldata 66B
.settings
com.genuitec.eclipse.j2eedt.core.prefs 1KB
org.eclipse.ltk.core.refactoring.prefs 137B
org.eclipse.core.resources.prefs 183B
com.genuitec.jboss.ide.eclipse.xdoclet.run.prefs 120B
org.eclipse.jdt.ui.prefs 162B
src
com
zgl
struts
ApplicationResources.properties 87B
action
StringUtil.java 2KB
HtmlAction.java 2KB
.project 1KB
WebRoot
css
ajax.css 218B
list.jsp 1KB
META-INF
MANIFEST.MF 39B
WEB-INF
struts-nested.tld 70KB
validator-rules.xml 13KB
struts-bean.tld 9KB
struts-html.tld 72KB
struts-logic.tld 14KB
struts-tiles.tld 8KB
web.xml 1KB
.struts-config.mex 763B
classes
com
zgl
struts
ApplicationResources.properties 87B
action
StringUtil.class 2KB
HtmlAction.class 3KB
struts-config.xml 570B
lib
js
ajax.js 7KB
index.jsp 2KB
webhp.htm 33KB
jsp
.mymetadata 298B
.classpath 453B
.myeclipse
共 31 条
- 1
资源评论
soar110
- 粉丝: 5
- 资源: 27
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功