13-获取拼音简码(字符串处理)

StringUtil.java

package com.lh.bean;

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();
			// 如果字符串的长度大于1,则为汉字
			if (b.length > 1) {
				// 根据字节值获得汉字的Unicode无符号编码
				int code = 256 * (b[0] + 256) + (b[1] + 256);
				/**
				 * 以下代码根据汉字的编码范围指定汉字的拼音首字母
				 */
				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;
	}

	public void setShortPhonetic(String shortPhonetic) {
		this.shortPhonetic = shortPhonetic;
	}

}


 

index.jsp

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>index.jsp</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" import="java.util.*" pageEncoding="UTF-8"%>
<html>
<head>
<title>My JSP 'filter.jsp' starting page</title>
</head>

<body>

	<%
		request.setCharacterEncoding("UTF-8");
		String sourceStr = request.getParameter("sourceStr");
	%>
	<!-- 使用userbean动作标签导入javaBean对象 -->
	<jsp:useBean id="strBean" class="com.lh.bean.StringUtil"></jsp:useBean>
	<!-- 对StringUtil类的sourceStr属性赋值 -->
	<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、付费专栏及课程。

余额充值