w3resource
Java Programming Exercies

Java Exercises: Create a basic string compression method using the counts of repeated characters

Java Basic: Exercise-208 with Solution

Write a Java program to create a basic string compression method using the counts of repeated characters.

Sample Solution:

Java Code:

import java.util.Scanner; 
public class StringCompression
{
 public static void main(String[] args)
 {
  StringCompression str = new StringCompression();
  String s1,s2; 
  Scanner in = new Scanner(System.in);
  System.out.println("Enter a string (you can include space as well)"); 
  s1 = in.nextLine(); 
  //Trim all the spaces of the string using replaceAll method
  s2 = s1.replaceAll("\\s","");
  str.Compression(s2);
 }
 
 
//Create a Java Method Compression to compress the string
public static String Compression(String s)
 {
  int count = 1;
  StringBuilder sb = new StringBuilder();

//Below for loop counts all characters of the string apart from the last one
//The last character won't get appended by the class StringBuilder here as it 
//does not enter the for loop once the length completes the count
      for (int i = 1; i < s.length()-1 ; i++) 
        {
          if (s.charAt(i) == s.charAt(i - 1)) 
          {
            count++;
          } 
          else 
          {
            sb.append(s.charAt(i - 1));
            sb.append(count);
            count = 1;
          }
        }
//Count the last character of the string
      if (s.length() > 1)
        {
        //Compare the last two characters of the string
        if (s.charAt(s.length() - 1) == s.charAt(s.length() - 2))
          {
            count++;
          } 
          else 
          {
            sb.append(s.charAt(s.length() - 2));
            sb.append(count);
            count = 1;
          }
          sb.append(s.charAt(s.length() - 1));
          sb.append(count);
        }
        s = sb.toString();
        System.out.println("The compressed string along with the counts of repeated characters is:" + "\n" +s);
        return s;
 }
}

Sample Output:

Enter a string (you can include space as well)
 aaaabbbbcccccddddeeee
The compressed string along with the counts of repeated characters is:
a4b4c5d4e4

Flowchart 1:

Flowchart: Java exercises: Create a basic string compression method using the counts of repeated characters.

Flowchart 2:

Flowchart: Java exercises: Create a basic string compression method using the counts of repeated characters.

Java Code Editor:

Contribute your code and comments through Disqus.

Previous: Write a Java program to compute xn % y where x, y and n are all 32bit integers.

What is the difficulty level of this exercise?



New Content: Composer: Dependency manager for PHP, R Programming