获取汉字的拼音简码

首先将输入的字符串转换位数组,然后循环该数组,在循环中使用String类的getBytes()方法将每个字符都转换为字节数组,根据字节数组的长度判断字符是否为汉字
*JavaBean类

public class StringUtil12 {
	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;
	}
}

index.jsp页

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>过滤字符串中空格与NULL值</title>
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<style type="text/css">
		table{
			border: 1px solid;
			border-color: green;
			font-family:华文细黑;
			font-size: 13px;
			color:gray;
			
		}
		input{
			font-family:华文细黑;
			font-size: 13px;
			color:gray;
		}
	</style>
  </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" import="java.util.*" pageEncoding="UTF-8"%>
<%
	request.setCharacterEncoding("UTF-8");
 %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>  
    <title>处理过滤</title>
    
	<meta http-equiv="pragma" content="no-cache">
	<meta http-equiv="cache-control" content="no-cache">
	<meta http-equiv="expires" content="0">    
	<meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
	<meta http-equiv="description" content="This is my page">
	<!--
	<link rel="stylesheet" type="text/css" href="styles.css">
	-->
	<style type="text/css">
		table{
			border: 1px solid;
			border-color: green;
			color: green;
			font-size: 13px;
			font-family: 华文细黑;
		}
	</style>
  </head>
  <body>
   	<%
   		String sourceStr = request.getParameter("sourceStr");
  	 %>
  	 <!-- 使用useBean动作标签导入JavaBean对象 -->
  	<jsp:useBean id="strBean" class="com.cn.zj.bean.StringUtil12"></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
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值