java中查询一个字符串中包含的最长的连续的字符串
如下代码仅供大家学习参考,自测无bug,大神绕道。。。
public static void main(String[] args) {
String s = "abcd1321123456";
int lastLen = 0;
int curLen = 0;
String res = "";
StringBuffer buffer = new StringBuffer();
char cur = 0;
char last = 0;
for (int i = 0; i < s.length(); i++) {
if (i == 0) {
lastLen = 1;
buffer.append(s.charAt(i));
}
if (i > 0) {
cur = s.charAt(i);
last = s.charAt(i - 1);
curLen = cur - last;
if (curLen == lastLen && Math.abs(curLen) == 1) {
buffer.append(cur);
} else if (curLen == -lastLen && Math.abs(curLen) == 1) {
if (res.length() < buffer.toString().length()) {
res = buffer.toString();
}
buffer = new StringBuffer();
buffer.append(last).append(cur);
lastLen = curLen;
} else {
if (res.length() < buffer.toString().length()) {
res = buffer.toString();
}
buffer = new StringBuffer();
buffer.append(cur);
lastLen = 1;
}
}
}
if (res.length() < buffer.toString().length()) {
res = buffer.toString();
}
System.out.println(res);
}
输出:123456