Repository: TheAlgorithms/Java
File: src/main/java/com/thealgorithms/strings/StringCompression.java (Java)

Code before:
package com.thealgorithms.strings;
/*  Link to the problem : https://leetcode.com/problems/string-compression/description/
 * String compression algorithm deals with encoding the string, that is, shortening the size of the string
 * @author Swarga-codes (https://github.com/Swarga-codes)
*/
public class StringCompression {
  /**
   * Returns the compressed or encoded string
   * 
   * @param ch character array that contains the group of characters to be encoded
   * @return the compressed character array as string
   */
  public static String compress(char[] ch) {
    // Keeping the count as 1 since every element present will have atleast a count
    // of 1
    int count = 1;
    String res = "";
    // Base condition to check whether the array is of size 1, if it is then we
    // return the array
    if (ch.length == 1) {
      return "" + ch[0];
    }
    // If the array has a length greater than 1 we move into this loop
    for (int i = 0; i < ch.length - 1; i++) {
      // here we check for similarity of the adjacent elements and change the count
      // accordingly
      if (ch[i] == ch[i + 1]) {
        count = count + 1;
      }
      if ((i + 1) == ch.length - 1 && ch[i + 1] == ch[i]) {
        res = checkCount(res, count, ch, i);
        break;
      } else if (ch[i] != ch[i + 1]) {
        if ((i + 1) == ch.length - 1) {
          res = checkCount(res, count, ch, i) + ch[i + 1];
          break;
        } else {
          res = checkCount(res, count, ch, i);
          count = 1;
        }
      }
    }

Review comment (suggestion):
```suggestion
    String compressedString = "";
```

Code after:
package com.thealgorithms.strings;
/*  References : https://en.wikipedia.org/wiki/Run-length_encoding
 * String compression algorithm deals with encoding the string, that is, shortening the size of the string
 * @author Swarga-codes (https://github.com/Swarga-codes)
*/
public class StringCompression {
  /**
   * Returns the compressed or encoded string
   * 
   * @param ch character array that contains the group of characters to be encoded
   * @return the compressed character array as string
   */
  public static String compress(String input) {
    // Keeping the count as 1 since every element present will have atleast a count
    // of 1
    int count = 1;
    String compressedString = "";
    // Base condition to check whether the array is of size 1, if it is then we
    // return the array
    if (input.length() == 1) {
      return "" + input.charAt(0);
    }
    // If the array has a length greater than 1 we move into this loop
    for (int i = 0; i < input.length() - 1; i++) {
      // here we check for similarity of the adjacent elements and change the count
      // accordingly
      if (input.charAt(i) == input.charAt(i + 1)) {
        count = count + 1;
      }
      if ((i + 1) == input.length() - 1 && input.charAt(i + 1) == input.charAt(i)) {
        compressedString = appendCount(compressedString, count, input.charAt(i));
        break;
      } else if (input.charAt(i) != input.charAt(i+1)) {
        if ((i + 1) == input.length() - 1) {
          compressedString = appendCount(compressedString, count, input.charAt(i)) + input.charAt(i+1);
          break;
        } else {
          compressedString = appendCount(compressedString, count, input.charAt(i));
          count = 1;
        }
      }
    }