java或者正则表达式如何判断字符串不是相同数字或者字母?不能全是连续数字?(最好是java)

问题描述

1.不能全是相同的数字或者字母(如:000000、111111、222222、333333等等)2.不能是连续数字(如:123456、12345678、87654321等等)

解决方案

//顺序表 static String orderStr = ""; static { for (int i = 33; i < 127; i++) { orderStr += Character.toChars(i)[0]; } } //判断是否有顺序 public static boolean isOrder(String str) { if (!str.matches("((\d)|([a-z])|([A-Z]))+")) { return false; } return orderStr.contains(str); } //判断是否相同 public static boolean isSame(String str) { String regex = str.substring(0, 1) + "{" + str.length() + "}"; return str.matches(regex); }
解决方案二:
1.不能全是相同的数字或者字母 正则倒是好处理:boolean unmatch = !"wwwww".matches("(\w)(\1)+");第2点正则不好处理
解决方案三:
稍微写了下 有点粗糙import java.util.ArrayList;import java.util.Collections;import java.util.List;import org.apache.commons.lang3.StringUtils;public class demo {/** * 判断是否是由同一字符构成的,true代表由同一字符构成的 false反之 */ public static boolean isSameSymbol(String s){ boolean flag=false; //当s为空字符串或者null,认为不是由同一字符构成的 if(StringUtils.isEmpty(s)){ return flag; } //当只有一个字符的时候,认为由同一字符构成 if(1==s.length()){ flag=true; return flag; } char chacter=s.charAt(0); for(int i=1;i<=s.length()-1;i++){ if(chacter!=s.charAt(i)){ flag=false; return flag; } } flag=true; return flag; } /** * 判断是否有顺序 true代表有顺序 false反之 */ public static boolean isOrdered(String s){ boolean flag=false; //当s为空字符串或者null,认为不是由同一字符构成的 if(StringUtils.isEmpty(s)){ return flag; } //当只有一个字符的时候,认为由同一字符构成 if(1==s.length()){ flag=true; return flag; } List<Integer> temp1= new ArrayList<Integer>(); List<Integer> temp2= new ArrayList<Integer>(); for(int i=0;i<s.length();i++){ temp1.add(Integer.valueOf(s.substring(i,i+1))); } for(int i=0;i<s.length();i++){ temp2.add(Integer.valueOf(s.substring(i,i+1))); } Collections.sort(temp1); StringBuffer orderedAsc=new StringBuffer(); for(Integer i:temp1){ orderedAsc.append(i); } Collections.sort(temp2); Collections.reverse(temp2); StringBuffer orderedDec=new StringBuffer(); for(Integer i:temp2){ orderedDec.append(i); } if(s.equals(orderedDec.substring(0))||s.equals(orderedAsc.substring(0))){ flag=true; return flag; } return flag; } public static void main(String[] args) {System.out.println(isSameSymbol("ssss"));System.out.println(isSameSymbol("saaa"));System.out.println(isOrdered("12345"));System.out.println(isOrdered("54321"));System.out.println(isOrdered("54451"));}}

时间: 2024-10-21 20:58:41

java或者正则表达式如何判断字符串不是相同数字或者字母?不能全是连续数字?(最好是java)的相关文章

Java利用正则表达式统计某个字符串出现的次数

//统计某个字符出现的次数 private void countSubString(){ String string1="香蕉.玉米.面粉"; String string2="香蕉.玉米.面粉"; String string3="牛奶.鸡蛋"; StringBuffer stringBuffer=new StringBuffer(); stringBuffer.append(string1).append(".").appen

java 判断字符串是否是整数

Java 中,如何判断字符串是否是整数呢? 有两种方式: 方式一:通过正则表达式 Java代码   /***       * 判断 String 是否int       *        * @param input       * @return       */       public static boolean isInteger(String input){           Matcher mer = Pattern.compile("^[0-9]+$").matche

Java使用正则表达式对注册页面进行验证功能实现_正则表达式

本文给大家介绍java使用正则表达式对注册页面进行验证的代码,代码如下所示: package regex; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class registered { public static void main(String[] args) { //注册用户 Scanner sc=new Scanner(System.in

Java使用正则表达式对注册页面进行验证功能实现

本文给大家介绍java使用正则表达式对注册页面进行验证的代码,代码如下所示: package regex; import java.util.Scanner; import java.util.regex.Matcher; import java.util.regex.Pattern; public class registered { public static void main(String[] args) { //注册用户 Scanner sc=new Scanner(System.in

java判断字符串是否为数字或中文或字母

个人认为最好的方法 *各种字符的unicode编码的范围:      * 汉字:[0x4e00,0x9fa5](或十进制[19968,40869])      * 数字:[0x30,0x39](或十进制[48, 57])      *小写字母:[0x61,0x7a](或十进制[97, 122])      * 大写字母:[0x41,0x5a](或十进制[65, 90]) public static boolean isLetterDigitOrChinese(String str) { Stri

Java判断字符串中是否包含中文方法_java

今天和同事在讨论一个问题,需要检查"输入的字符串中是否包含中文",刚开始想到是用正则表达式,正则表达式中是以[u4e00-u9fa5]来全匹配字符是否是中文,但现在面临的问题是这个字符串中还可能包含英文字符.数字.特殊字符,一时也没想出能匹配该场景的正则表达式,后来在网上搜了下,可以使用Matcher类来解决该问题,大致的代码实现如下: import java.util.regex.Matcher; import java.util.regex.Pattern; public clas

Java判断字符串为空、字符串是否为数字_java

关于 String 的判空: 复制代码 代码如下: //这是对的if (selection != null && !selection.equals("")) {      whereClause += selection;  } //这是错的if (!selection.equals("") && selection != null) {      whereClause += selection;  } 注:"==&qu

java判断字符串是否为数字的方法小结_java

本文实例总结了java判断字符串是否为数字的方法.分享给大家供大家参考,具体如下: 方法一:用JAVA自带的函数 public static boolean isNumeric(String str){ for (int i = str.length();--i>=0;){ if (!Character.isDigit(str.charAt(i))){ return false; } } return true; } 方法二:用正则表达式 public static boolean isNume

c-怎样用正则表达式判断字符串是否符合这种格式:ABC######[0###,,求大神们指点,急急急

问题描述 怎样用正则表达式判断字符串是否符合这种格式:ABC######[0###,,求大神们指点,急急急 怎样用正则表达式判断字符串是否符合这种格式:ABC######[0###,,求大神们指点,急急急 解决方案 有个数限制吗?没有,直接匹配这个字符串不就可以了.你这里面哪些是可变的 解决方案二: #是什么意思?数字? abcd{5}[0dd{3} 解决方案三: abc.{5}[.dd{3} 解决方案四: ABC.{5}[0.{3}