import java.util.*;
/*编写函数,找出字符串中连续出现的字符
* 返回连续字符子串的数组
* 若无连续字符子串,返回空数组*/
public class continuationsubstring {
public static void main(String[] args) {
LinkedList<String> list = new LinkedList();
List<String> res = getRes("dad", list);
System.out.println(res);
}
public static List<String> getRes(String str, List list) {
int count = 1;//count用来对重复元素个数计数,每次元素值改变之后都是1
char ch = str.charAt(0);
for (int i = 0; i < str.length(); i++) {
//判断如果当前索引处的值和ch相同就count++
while (++i < str.length() && str.charAt(i) == ch) {
count++;
}
//默认每个元素都会出现一次,如果大于1代表出现了两次,放到list中
if (count > 1) {
StringBuilder builder = new StringBuilder();
for (int j = 0; j < count; j++) {
builder.append(ch);
}
list.add(builder.toString());
}
//此时已经退出while循环,代表这个元素已经和之前的不同了
// 每次在本次循环之后维护ch和i和count的值
if (i < str.length()) {
ch = str.charAt(i);
count = 1;//默认count都应该是1,因为每个新元素 都出现了1次
i--;//上边while循环的时候是++i,此时再减回来
}
}
return list;
}
}