java 判断数字是否连续,JAVA 判断是否连续字母或者数字

该博客介绍了一种JAVA实现连续字母或数字的校验方法,通过ASCII码进行判断,支持区分大小写的纯字母和纯数字的连续性检查。主要包含两个校验方法,一个默认校验6位,另一个可自定义校验长度。同时提供了示例代码进行说明。
摘要由CSDN通过智能技术生成

JAVA实现连续字母或者数字:

实现思路:统一转成ASCII进行计数判断,纯数字、纯字母

//纯数字(数字0 -- 数字9,对应ASCII为48 -- 57)

//大写纯字母(大写字母A -- 大写字母Z,对应ASCII为65 -- 90)

//小写纯字母(小写字母a -- 小写字母z,对应ASCII为97 -- 122)

案例:

package cn.sunmeng.utils;

/**

* @ClassName: SimpleLetterAndNumCheck.java

* @Description: JAVA实现连续字母或者数字:

实现思路:统一转成ASCII进行计数判断,纯数字、纯字母

//纯数字(数字0 -- 数字9,对应ASCII为48 -- 57)

//大写纯字母(大写字母A -- 大写字母Z,对应ASCII为65 -- 90)

//小写纯字母(小写字母a -- 小写字母z,对应ASCII为97 -- 122)

* @author: SM(sm0210@qq.com)

* @date: 2017年5月28日 上午10:37:22

*/

public class SimpleLetterAndNumCheck {

/**

* SM 校验字符串连续多少位是纯数字或者纯字母,默认6位(字母区分大小写)

* @param password 密码

* @return

*/

public static boolean simpleLetterAndNumCheck(String value){

//

return SimpleLetterAndNumCheck.simpleLetterAndNumCheck(value, 6);

}

/**

* SM 校验字符串连续多少位是纯数字或者纯字母,默认6位(字母区分大小写)

* @param password 密码

* @param length 校验长度,默认6为

* @return

*/

public static boolean simpleLetterAndNumCheck(String value, int length){

//是否不合法

boolean isValidate = false;

//

int i = 0;

//计数器

int counter = 1;

//

for(; i < value.length() -1;) {

//当前ascii值

int currentAscii = Integer.valueOf(value.charAt(i));

//下一个ascii值

int nextAscii = Integer.valueOf(value.charAt(i + 1));

//满足区间进行判断

if( (SimpleLetterAndNumCheck.rangeInDefined(currentAscii, 48, 57) || SimpleLetterAndNumCheck.rangeInDefined(currentAscii, 65, 90) || SimpleLetterAndNumCheck.rangeInDefined(currentAscii, 97, 122))

&& (SimpleLetterAndNumCheck.rangeInDefined(nextAscii, 48, 57) || SimpleLetterAndNumCheck.rangeInDefined(nextAscii, 65, 90) || SimpleLetterAndNumCheck.rangeInDefined(nextAscii, 97, 122)) ) {

//计算两数之间差一位则为连续

if(Math.abs((nextAscii - currentAscii)) == 1){

//计数器++

counter++;

}else{

//否则计数器重新计数

counter = 1;

}

}

//满足连续数字或者字母

if(counter >= length) return !isValidate;

//

i++;

}

//

return isValidate;

}

/**

* SM 判断一个数字是否在某个区间

* @param current 当前比对值

* @param min 最小范围值

* @param max 最大范围值

* @return

*/

public static boolean rangeInDefined(int current, int min, int max) {

//

return Math.max(min, current) == Math.min(current, max);

}

/**

*

* @param args

*/

public static void main(String[] args) {

//

//String str = "1234677A!@#B0abcdeg123456DDzZ09";

//连续不合法区间值校验

String str = ":;<=>?@A";

//

boolean validate = SimpleLetterAndNumCheck.simpleLetterAndNumCheck(str);

//

if(validate){

System.out.println("连续字母或者数字");

}else {

System.out.println("合法的校验");

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值