Java中判断某一字符串是否包含数字、字母和中文
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java中判断某一字符串是否包含数字、字母和中文,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3105字,纯文字阅读大概需要5分钟。
内容图文
- 各种字符的unicode编码的范围:
- 汉字:[0x4e00,0x9fa5](或十进制[19968,40869])
- 数字:[0x30,0x39](或十进制[48, 57])
- 小写字母:[0x61,0x7a](或十进制[97, 122])
- 大写字母:[0x41,0x5a](或十进制[65, 90])
import
java.util.regex.Matcher;
import
java.util.regex.Pattern;
public
class
StrValidate {
//
纯数字
private
static String DIGIT_REGEX = "[0-9]+";
// 含有数字privatestatic String CONTAIN_DIGIT_REGEX = ".*[0-9].*";
// 纯字母privatestatic String LETTER_REGEX = "[a-zA-Z]+";
// 包含字母privatestatic String CONTAIN_LETTER_REGEX = ".*[a-zA-z].*";
// 纯中文privatestatic String CHINESE_REGEX = "[\u4e00-\u9fa5]";
// 仅仅包含字母和数字privatestatic String LETTER_DIGIT_REGEX = "^[a-z0-9A-Z]+$";
privatestatic String CHINESE_LETTER_REGEX = "([\u4e00-\u9fa5]+|[a-zA-Z]+)";
privatestatic String CHINESE_LETTER_DIGIT_REGEX = "^[a-z0-9A-Z\u4e00-\u9fa5]+$";
/**
* 判断字符串是否仅含有数字和字母
*
* @param str
* @return*/publicstaticboolean isLetterDigit(String str) {
return str.matches(LETTER_DIGIT_REGEX);
}
/**
* 是否为汉字,不包括标点符号
*
* @param con
* @return true 是汉字
*/publicstaticboolean isChinese(String con) {
Pattern pattern = Pattern.compile(CHINESE_REGEX);
for (int i = 0; i < con.length(); i = i + 1) {
if (!pattern.matcher(
String.valueOf(con.charAt(i))).find()) {
returnfalse;
}
}
returntrue;
}
/**
* 用正则表达式判断字符串中是否
* 仅包含英文字母、数字和汉字
*
* @param str
* @return*/publicstaticboolean isLetterDigitOrChinese(String str) {
return str.matches(CHINESE_LETTER_DIGIT_REGEX);
}
/**
* 姓名中可包含汉字和字母,无其它字符
*
* @param passengerName
* @return*/publicstaticboolean checkChineseLetter(String passengerName) {
Pattern pattern = Pattern.compile(CHINESE_LETTER_REGEX);
Matcher matcher = pattern.matcher(passengerName);
if (matcher.matches()) {
//不包含特殊字符returntrue;
} else {
//包含了特殊字符returnfalse;
}
}
/**
* 判断一个字符串是否包含标点符号(中文或者英文标点符号),true 包含。<br/>
* 原理:对原字符串做一次清洗,清洗掉所有标点符号。<br/>
* 此时,如果入参 ret 包含标点符号,那么清洗前后字符串长度不同,返回true;否则,长度相等,返回false。<br/>
*
* @param ret
* @return true 包含中英文标点符号
*/publicstaticboolean checkPunctuation(String ret) {
boolean b = false;
String tmp = ret;
// replaceAll里面的正则匹配可以清空字符串中的中英文标点符号,只保留数字、英文和中文。
tmp = tmp.replaceAll("\\p{P}", "");
if (ret.length() != tmp.length()) {
b = true;
}
return b;
}
publicstaticboolean isDigit(String ret) {
return ret.matches(DIGIT_REGEX);
}
publicstaticboolean isLetter(String ret) {
return ret.matches(LETTER_REGEX);
}
publicstaticboolean hasDigit(String ret) {
return ret.matches(CONTAIN_DIGIT_REGEX);
}
publicstaticboolean hasLetter(String ret) {
return ret.matches(CONTAIN_LETTER_REGEX);
}
publicstaticvoid main(String[] args) {
// System.out.println(isLetterDigitOrChinese("33dd33") + " ------- 麦迪娜·买买提 ---------");
// System.out.println(isChinese("麦迪娜·买买提"));
// System.out.println(isChinese("这个X") + " checkChineseLetter ");
// System.out.println(isChinese("checkChineseLetter"));
// System.out.println(isChinese("checkChineseLetter3"));
System.out.println(hasDigit("99999"));
System.out.println(hasDigit("9999舅舅9"));
}
}
原文:https://www.cnblogs.com/east7/p/12215829.html
内容总结
以上是互联网集市为您收集整理的Java中判断某一字符串是否包含数字、字母和中文全部内容,希望文章能够帮你解决Java中判断某一字符串是否包含数字、字母和中文所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。