300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java 判断数字是否连续 JAVA 判断是否连续字母或者数字

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

时间:2019-03-17 00:31:25

相关推荐

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

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@)

* @date: 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("合法的校验");

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。