JavaBean实例9:获取汉字的拼音简码

实现此功能的主要是通过Unicode字符集实现。

代码实现:

1.javaBean文件:
StringUtil.java

package exa137;

public class StringUtil {
	private String sourceStr;								//源字符串			
	private String shortPhonetic="";						//获得汉字的拼音简码字符串	
	public String getSourceStr() {
		return sourceStr;
	}
	public void setSourceStr(String sourceStr) {
		this.sourceStr = sourceStr;
	}
	public String getShortPhonetic() {
		char cArr[] = sourceStr.toCharArray();				//将字符串转换为数组
		byte b[] ;								
		String sp = "";										//该变量用于在循环中保存单个字的拼音首字母
		for(int i=0;i<cArr.length;i++){
			b =String.valueOf(cArr[i]).getBytes();
			if(b.length>1){									//如果字符串字节长度大于1,则为汉字
				int code = 256*(b[0]+256)+(b[1]+256);		//根据字节值获得汉字的Unicode编码
				/**以下代码根据汉字的编码范围指定汉字的首字母*/
				if (code >= 45217 && code <= 45252) {		
					sp="A";
				} else if (code >= 45253 && code <= 45760) {
					sp="B";
				} else if (code >= 45761 && code <= 46317) {
					sp="C";
				} else if (code >= 46318 && code <= 46825) {
					sp="D";
				} else if (code >= 46826 && code <= 47009) {
					sp="E";
				} else if (code >= 47010 && code <= 47296) {
					sp="F";
				} else if (code >= 47297 && code <= 47613) {
					sp="G";
				} else if (code >= 47614 && code <= 48118) {
					sp="H";
				} else if (code >= 48119 && code <= 49061) {
					sp="J";
				} else if (code >= 49062 && code <= 49323) {
					sp="K";
				} else if (code >= 49324 && code <= 49895) {
					sp="L";
				} else if (code >= 49896 && code <= 50370) {
					sp="M";
				} else if (code >= 50371 && code <= 50613) {
					sp="N";
				} else if (code >= 50614 && code <= 50621) {
					sp="O";
				} else if (code >= 50622 && code <= 50905) {
					sp="P";
				} else if (code >= 50906 && code <= 51386) {
					sp="Q";
				} else if (code >= 51387 && code <= 51445) {
					sp="R";
				} else if (code >= 51446 && code <= 52217) {
					sp="S";
				} else if (code >= 52218 && code <= 52697) {
					sp="T";
				} else if (code >= 52698 && code <= 52979) {
					sp="W";
				} else if (code >= 52980 && code <= 53640) {
					sp="X";
				} else if (code >= 53689 && code <= 54480) {
					sp="Y";
				} else if (code >= 54481 && code <= 62289) {
					sp="Z";
				}
			}
			else{							//如果为英文字母,直接返回字母本身
				sp=String.valueOf(cArr[i]);
			}
			shortPhonetic +=sp;				//将转换后的每个汉字拼音简码连接成一个字符串
		}
		return shortPhonetic;
	}
}

2.JSP文件
index.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<form action="getShortPhonetic.jsp" method="post">
     <table>
     	<tr>
     		<td align="right">请输入汉字:</td>
     		<td><input type="text" name="sourceStr"  size="30"/></td>
     	</tr>
     	<tr>
     		<td colspan="2" align="center"><input type="submit" value="获取拼音简码" /></td>
     	</tr>
     </table>	
     </form>
</body>
</html>

getShortPhonetic.jsp

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
   		String sourceStr = request.getParameter("sourceStr");
  	 %>
  	 <!-- 使用useBean动作标签导入JavaBean对象 -->
  	<jsp:useBean id="strBean" class="exa137.StringUtil"></jsp:useBean>
  	 <!-- 对StringUtil类的longValue属性赋值 -->
  	<jsp:setProperty property="sourceStr" name="strBean" value="<%=sourceStr %>"/>
    <table>
    	<tr>
			<td>输入的汉字:</td>
			<td align="left">	
				<jsp:getProperty property="sourceStr" name="strBean"/>
			</td>
		</tr>
		<tr >
			<td>拼音简码:</td>
			<td align="left">	
				<jsp:getProperty property="shortPhonetic" name="strBean"/>
			</td>		
		</tr>
 	</table>	
</body>
</html>

结果:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员小牧之

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值