当我们有时候需要判断一段话中是否包含英文的时候。
我们可以先通过String类中的:
1.**toCharArray();**方法将指定字符串转换为字符数组。
2.然后将数组中的字符强制转换为ASCII码。
3.最后通过ASCII码的大小进行循环判断实现此功能。
实例代码如下:
1.JavaBean文件:
StringUtil.java
package exa139;
public class StringUtil {
private String str; //要判断的字符串
private boolean hasEn; //是否包含英文字符
private String cnStr; //去掉英文字母后的字符串
public String getCnStr() {
return cnStr;
}
public void setCnStr(String cnStr) {
this.cnStr = cnStr;
}
public String getStr() {
return str;
}
public void setStr(String str) {
this.str = str;
}
public boolean isHasEn() {
char cArr[] = str.toCharArray();//将字符串转换为字符数组
StringBuffer sb =new StringBuffer("");
StringBuffer sb2 =new StringBuffer("");
for(int i=0;i<cArr.length;i++){
//调用String类的hashCode()方法也能获得字符的ASCII码
//int ascii = String.valueOf(cArr[i]).hashCode();
int ascii = (int)cArr[i];//强制转换可以直接得到字符的ASCII码
//英文字符的 ASCII码范围,大写字母A-Z的范围65-90,小写字母a-z的范围97-122
if((ascii>=65&&ascii<=90)||(ascii>=97&&ascii<=122)){
sb.append(cArr[i]);//将每个英文字母添加到StringBuffer对象中
}
else{
sb2.append(cArr[i]);
}
}
this.setCnStr(sb2.toString());
if(!sb.toString().equals(""))//如果保存英文字母的字符串不为"",说明该字符串包含英文字母
hasEn=true;
else
hasEn=false;
return hasEn;
}
public void setHasEn(boolean hasEn) {
this.hasEn = hasEn;
}
}
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="check.jsp" method="post">
<table>
<tr>
<td align="right">请输入字符串:</td>
<td><input type="text" name="str" size="30"/></td>
</tr>
<tr>
<td colspan="2" align="center"><input type="submit" value="检 查" /></td>
</tr>
</table>
</form>
</body>
</html>
check.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 str = request.getParameter("str");
%>
<!-- 使用useBean动作标签导入JavaBean对象 -->
<jsp:useBean id="strBean" class="exa139.StringUtil"></jsp:useBean>
<!-- 对StringUtil类的str属性赋值 -->
<jsp:setProperty property="str" name="strBean" value="<%=str %>"/>
<table>
<tr>
<td align="right">输入的字符串:</td>
<td>
<!-- 从StringUtil对象中获得str的属性值 -->
<jsp:getProperty property="str" name="strBean"/>
</td>
</tr>
<tr>
<td align="right">是否包含英文字母:</td>
<td>
<!-- 从StringUtil对象中获得hasEn的属性值 -->
<jsp:getProperty property="hasEn" name="strBean"/>
</td>
</tr>
<tr>
<td align="right">去掉英文字母后的字符串:</td>
<td>
<!-- 从StringUtil对象中获得cnStr的属性值 -->
<jsp:getProperty property="cnStr" name="strBean"/>
</td>
</tr>
</table>
</body>
</html>
结果: