import java.util.*;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.stream.*;
public class ToStringProgram
{
public static void main(String[] args)
{
String str = "aabbbccccc";
String charCount = compressString(str);
System.out.println(charCount);
}
private static String compressString(String str)
{
List<String> list = new ArrayList<>();
AtomicInteger count = new AtomicInteger(1);
IntStream.range(0,str.length())
.forEach(i -> {
if(i>0 && str.charAt(i)==str.charAt(i-1))
{
count.incrementAndGet();
}
else {
if(i>0)
{
list.add(String.valueOf(str.charAt(i-1))+count);
}
count.set(1);
}
});
list.add(String.valueOf(str.charAt(str.length()-1))+count);
return list.stream().collect(Collectors.joining());
}
}
No comments:
Post a Comment