public class Test2 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
StringBuilder ss = new StringBuilder();//用于拼接字符串
String str = "asdfgrsefkkclgtdxdwee";//初始化一个测试用的字符串
char[] strs = str.toCharArray();//将字符串转为字符数组
//遍历字符数组
for (int i = 0; i < strs.length; i++) {
//判断字符串中是否包含此字符
if (ss != null && ss.toString().contains(String.valueOf(strs[i])) ) {
//将不含有重复的字符串放到list集合
list.add(ss.toString());
ss.delete(0, ss.length());//清空StringBuilder
ss.append(String.valueOf(strs[i]));//将此重复的字符拼接到StringBuilder
//判断此字符是否为字符串的最后一个字符;如果是则将之前拼接成的字符串添加到list集合中
if (i == (strs.length - 1)) {
list.add(ss.toString());
}
}
//如果当前字符串不包含此字符,直接将其拼接到StringBuilder
else {
ss.append(String.valueOf(strs[i]));
//如果当前字符串拼接的字符已经属于最后一个字符了,就直接将其放到list集合中
if (i == (strs.length - 1)) {
list.add(ss.toString());
}
}
}
// 遍历list集合,输出不含有重复字符的字符串
StringBuilder maxString = new StringBuilder(list.get(0));
for (String s1 : list) {
System.out.println("长度:" + s1.length() + " " + s1);
if (s1.length() > maxString.length()) {
maxString.delete(0, maxString.length());
maxString.append(s1);
}
}
System.out.println("\n" + "最长字符串: " + maxString);
}
}
祝愿自己和大家可以在技术这条路上坚持下去,并且越走越远!