//我刚才有点事,刚回就赶紧给你写了个小demo。并做了一点小扩充。希望能满足你的需求。如果可以,希望你采纳,给个分。有事再追问。。。时间有点紧迫,有关判断的地方还不够精简,希望各位指正,拍砖。
public static void main(String[] args) {
//getCharsByRegex("2uos3撒alaask大家、】【23ksssh",4);//这行是你要的结果
getCharsByRegex("2uos3撒alaask大家、】【23ksssh",3);
}
/**
* @param str 传入字符串
* @param len 连续字符个数(你可以写任何整数: 4 或 6 或其它,我在这里给了个3,你可以写成4)
*/
static public void getCharsByRegex(String str,int len){
List list = new ArrayList();
if(str != null && str.length() > 0 && len > 0){
int cnt = 0,restart = -1,start = -1;
char[] chs = str.toCharArray();
for (int i = 0; i < chs.length; i++) {
if((chs[i]+"").matches("[a-zA-Z]")){
++cnt;
if(restart == -1){start = i;}
if(start != -1){restart = 0;}
if(restart != -1 && start != -1 && (i-start+1) == len){
list.add(str.substring(start,i+1));
//System.out.println(i + "--" + start + "--" + str.substring(start,i+1));
restart = -1;start = -1;
}
}else{
restart = -1;
}
}
for (String string : list) {
System.out.println(string);
}
System.out.println("字符个数:"+cnt);
}
}