String s = "qwerrfghh"; StringBuffer news = new StringBuffer(); char c = s.charAt(0); char d; int len = 0; news.append(c); for(int i=1; i<s.length(); i++) { d = s.charAt(i); if(c == d) news.append(d); else { c = d; news.append(",").append(d); } } System.out.println("用逗号分割后的字符串:"+news.toString()); String sb[] = news.toString().split(","); for(int i=0; i<sb.length; i++) { if(sb[i].length() > len) len = sb[i].length(); } System.out.println("最长字符串长度:"+len); System.out.println("最长字符串有:"); for(int i=0; i<sb.length; i++) { if(sb[i].length() == len) System.out.println(sb[i]); }
String s = "aaabbbbbcccccccd"; String u = "?" + s; String d = s + "?"; StringBuffer ms = new StringBuffer(); for (int i = 0; i < d.length(); ++i) { ms.append((char)('0' + u.charAt(i) - d.charAt(i))); } String r = ms.toString(); String[] rs = r.split("00*"); int offset = 0; int max = 0; int from = 0; for (int i = 0; i < rs.length - 1; ++i) { offset = r.indexOf(rs[i], offset); int next = r.indexOf(rs[i + 1], offset += 1); if (next - offset > max) { max = next - offset + 1; from = offset - 1; //You can use ArrayList to store the result. } } System.out.println(from + " " + max);
public class longString { public static void main(String[] args) { String str = "rrbbeeeffff"; StringBuffer sf = new StringBuffer(); char d = str.charAt(0); int e = 0; for(int i=0;i<str.length();i++){ char c = str.charAt(i); if(c == d){ sf.append(c); }else{ d = c; sf.append(",").append(c); } } String s[] = sf.toString().split(","); for(int i=0; i<s.length; i++) { if(s[i].length() > e) e = s[i].length(); } System.out.println("最长字符串长度为:"+e); System.out.println("最长字符串分别为:"); for(int i=0; i<s.length; i++) { if(s[i].length() == e) System.out.println(s[i]); } } }
String s = "qwerrfghh";
StringBuffer news = new StringBuffer();
char c = s.charAt(0);
char d;
int len = 0;
news.append(c);
for(int i=1; i<s.length(); i++) {
d = s.charAt(i);
if(c == d)
news.append(d);
else {
c = d;
news.append(",").append(d);
}
}
System.out.println("用逗号分割后的字符串:"+news.toString());
String sb[] = news.toString().split(",");
for(int i=0; i<sb.length; i++) {
if(sb[i].length() > len)
len = sb[i].length();
}
System.out.println("最长字符串长度:"+len);
System.out.println("最长字符串有:");
for(int i=0; i<sb.length; i++) {
if(sb[i].length() == len)
System.out.println(sb[i]);
}
String u = "?" + s;
String d = s + "?";
StringBuffer ms = new StringBuffer(); for (int i = 0; i < d.length(); ++i) {
ms.append((char)('0' + u.charAt(i) - d.charAt(i)));
} String r = ms.toString(); String[] rs = r.split("00*");
int offset = 0;
int max = 0;
int from = 0;
for (int i = 0; i < rs.length - 1; ++i) {
offset = r.indexOf(rs[i], offset);
int next = r.indexOf(rs[i + 1], offset += 1);
if (next - offset > max) {
max = next - offset + 1;
from = offset - 1;
//You can use ArrayList to store the result.
}
} System.out.println(from + " " + max);
String str = "rrbbeeeffff";
StringBuffer sf = new StringBuffer();
char d = str.charAt(0);
int e = 0;
for(int i=0;i<str.length();i++){
char c = str.charAt(i);
if(c == d){
sf.append(c);
}else{
d = c;
sf.append(",").append(c);
}
} String s[] = sf.toString().split(",");
for(int i=0; i<s.length; i++) {
if(s[i].length() > e)
e = s[i].length();
}
System.out.println("最长字符串长度为:"+e);
System.out.println("最长字符串分别为:");
for(int i=0; i<s.length; i++) {
if(s[i].length() == e)
System.out.println(s[i]);
}
}
}
private static void getMaxStr(String str){
String a="";
String maxstr = "";
int maxlength = 0;
int start=0;
for(int i =0;i<str.length();i++){
//判断当前的字符是否和前面的相同
if(!a.equals(String.valueOf(str.charAt(i)))){//当前字符和前面的字符不相同
start = i;//相同字符的开始位置
a=String.valueOf(str.charAt(i));
}else{ //当前字符和前面的字符相同
String curmaxstr = str.substring(start,i+1);//从相同字符开始位置到目前的字符串
int curmaxlength = curmaxstr.length();//相同字符串的长度
if(curmaxlength>maxlength){//如果后面相同的字符串长度大于当前字符串长度的话
maxlength = curmaxlength;
maxstr = curmaxstr;
}
}
}
System.out.println("最大长度的字符串:" + maxstr);
System.out.println("最大长度的字符串的长度:" + maxlength);
}