62,610
社区成员
发帖
与我相关
我的任务
分享
public static void main(String[] args) {
String str = "xx9iijfdsfAAkkkBBkkkkkkkAABBsfjDDfsdfhBBfhAsdhhAAAAdshfdxAA9AAdsfAAkBBkkBBkBBkkkkkkksfjsdjAAfsBBdfhBBdshAAfhsBBdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkBBkkksfjsdjfsdfhdshfhsBBBBBfdshfdx9iiBBAAAAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfAAAdsBBhBBiijfdsfAAkkkBBkkkkkkkkkkkBBBdfhdSSBBfhAAAhfsdfdBBBjfdsfAAkkkBBAAkkkkkkksfjsdjBBhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdx9iijfdsfAAkkkBBkkkkkkkkkkksfjsdjfsdfhdshfhsdhhfsdfdshfdfhsdfhAAABBkkkBB";
str=str+str+str;
str=str+str+str;
long begintime = System.currentTimeMillis();
String replaceStr = str.replaceAll("A{2}|B{2}", " ");
long endtime = System.currentTimeMillis();
//System.out.println(replaceStr);
System.out.println();
System.out.println("正则用的时间:" + (endtime - begintime));
begintime = System.currentTimeMillis();
StringBuilder sb = new StringBuilder();
char lastC = str.charAt(0);
char nowC = '1';
for (int i = 1; i < str.length(); i++) {
nowC = str.charAt(i);
if ((nowC == 'A' || nowC == 'B') && nowC == lastC) {
/* 替换 */
sb.append(" ");
if (i+1< str.length()) {
lastC = str.charAt(i + 1);
i++;
if (i == str.length() - 1) {
sb.append(lastC);
}
}
} else {
sb.append(lastC);
lastC = nowC;
if (i == str.length() - 1) {
sb.append(lastC);
}
}
}
endtime = System.currentTimeMillis();
System.out.println(sb.toString().equals(replaceStr));
System.out.println();
System.out.println("手写用的时间:" + (endtime - begintime));
}