java判断字符串中是否包含数字和字母_Java中判断某一字符串是否包含数字、字母和中文...

importjava.util.regex.Matcher;importjava.util.regex.Pattern;public classStrValidate {//纯数字

private static String DIGIT_REGEX = "[0-9]+";//含有数字

private static String CONTAIN_DIGIT_REGEX = ".*[0-9].*";//纯字母

private static String LETTER_REGEX = "[a-zA-Z]+";//包含字母

private static String CONTAIN_LETTER_REGEX = ".*[a-zA-z].*";//纯中文

private static String CHINESE_REGEX = "[\u4e00-\u9fa5]";//仅仅包含字母和数字

private static String LETTER_DIGIT_REGEX = "^[a-z0-9A-Z]+$";private static String CHINESE_LETTER_REGEX = "([\u4e00-\u9fa5]+|[a-zA-Z]+)";private static String CHINESE_LETTER_DIGIT_REGEX = "^[a-z0-9A-Z\u4e00-\u9fa5]+$";/*** 判断字符串是否仅含有数字和字母

*

*@paramstr

*@return

*/

public static booleanisLetterDigit(String str) {returnstr.matches(LETTER_DIGIT_REGEX);

}/*** 是否为汉字,不包括标点符号

*

*@paramcon

*@returntrue 是汉字*/

public static booleanisChinese(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()) {return false;

}

}return true;

}/*** 用正则表达式判断字符串中是否

* 仅包含英文字母、数字和汉字

*

*@paramstr

*@return

*/

public static booleanisLetterDigitOrChinese(String str) {returnstr.matches(CHINESE_LETTER_DIGIT_REGEX);

}/*** 姓名中可包含汉字和字母,无其它字符

*

*@parampassengerName

*@return

*/

public static booleancheckChineseLetter(String passengerName) {

Pattern pattern=Pattern.compile(CHINESE_LETTER_REGEX);

Matcher matcher=pattern.matcher(passengerName);if(matcher.matches()) {//不包含特殊字符

return true;

}else{//包含了特殊字符

return false;

}

}/*** 判断一个字符串是否包含标点符号(中文或者英文标点符号),true 包含。

* 原理:对原字符串做一次清洗,清洗掉所有标点符号。

* 此时,如果入参 ret 包含标点符号,那么清洗前后字符串长度不同,返回true;否则,长度相等,返回false。

*

*@paramret

*@returntrue 包含中英文标点符号*/

public static booleancheckPunctuation(String ret) {boolean b = false;

String tmp=ret;//replaceAll里面的正则匹配可以清空字符串中的中英文标点符号,只保留数字、英文和中文。

tmp = tmp.replaceAll("\\p{P}", "");if (ret.length() !=tmp.length()) {

b= true;

}returnb;

}public static booleanisDigit(String ret) {returnret.matches(DIGIT_REGEX);

}public static booleanisLetter(String ret) {returnret.matches(LETTER_REGEX);

}public static booleanhasDigit(String ret) {returnret.matches(CONTAIN_DIGIT_REGEX);

}public static booleanhasLetter(String ret) {returnret.matches(CONTAIN_LETTER_REGEX);

}public static voidmain(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"));

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值