3 回答
TA贡献1878条经验 获得超4个赞
//顺序表
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);
}
TA贡献1865条经验 获得超7个赞
1.不能全是相同的数字或者字母 正则倒是好处理:
boolean unmatch = !"wwwww".matches("(\\w)(\\1)+");
第2点正则不好处理
TA贡献1869条经验 获得超4个赞
Java代码
稍微写了下 有点粗糙
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"));
}
}
添加回答
举报