输入一个由小写字母组成的字符串,可以看作是若干包含相同字母的碎片组合而成。例如aaaabbaaabbc,就可以看作是由4个碎片“aaaa"\"bb"\"aaa"\"c"组成;输出要求:将各个碎片按照字典序输出,每个碎片占一行,注意相同的碎片只能出现一次。
输入:abbaaacadd
输出:a
aaa
bb
c
dd
输入:aabbcc
输出:aa
bb
cc
输入:a
输出:a
思路分析:
1)当后一个字符与前一个字符不相同时,就存储前面的,这里考虑使用substring(a,b)
2)这里需要注意:在判断最后一个字符与倒数第二个字符时,需要单独拎出来;
3)注意:边界情况,长度为1的字符串,长度为2的字符串等等
4)这里利用TreeSet数据结构来存储,直接消除重复,并且按照字典顺序排列。
代码分享:
package StringDemo; //碎片化字符串 import java.util.*; public class StringDemo11 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); String str = sc.next(); char[] charArr = str.toCha