Talend Equivalent for TRIM Function in Datastage

    package routines;

    public class UserString {

      /**
       * 
       * L Removes leading occurrences of character. 
       * T Removes trailing occurrences of character. 
       * B Removes leading and trailing occurrences of character. 
       * R Removes leading and trailing occurrences of character, and reduces multiple occurrences to a single occurrence. 
       * A Removes all occurrences of character. 
       * F Removes leading spaces and tabs 
       * E Removes trailing spaces and tabs 
       * D Removes leading and trailing spaces and tabs, and reduces multiple spaces and tabs to single ones.
       */
      public static String TRIM(String str, String character, String option) {
        String returnStr = "";
        if (str == null) {
          return null;
        }
        if (option.equals("L")) {
          returnStr = str.replaceFirst("^" + character + "+", "");
        } else if (option.equals("T")) {
          returnStr = str.replaceAll("[" + character + "]+$", "");
        } else if (option.equals("B")) {
          returnStr = str.replaceFirst("^" + character + "+", "");
          returnStr = returnStr.replaceAll("[" + character + "]+$", "");
        } else if (option.equals("R")) {
          returnStr = str.replaceFirst("^" + character + "+", "");
          returnStr = returnStr.replaceAll("[" + character + "]+$", "");
          returnStr = avoidMultipleOccurrence(returnStr, character);
        } else if (option.equals("A")) {
          returnStr = str.replaceAll(character, "");
        } else if (option.equals("F")) {
          returnStr = TRIM(str, " ", "L");
          returnStr = TRIM(returnStr, "\t", "L");
        } else if (option.equals("E")) {
          returnStr = TRIM(str, " ", "T");
          returnStr = TRIM(returnStr, "\t", "T");
        } else if (option.equals("D")) {
          returnStr = TRIM(str, "", "F");
          returnStr = TRIM(returnStr, "", "E");
          returnStr = avoidMultipleOccurrence(returnStr, " ");
          returnStr = avoidMultipleOccurrence(returnStr, "\t");
        }
        return returnStr;
      }

      public static String TRIM(String str) {
        return (str == null) ? null : TRIM(str, " ", "R");
      }

      public static String avoidMultipleOccurrence(String input, String character) {
        if (input == null) {
          return null;
        }
        if (input.length() == 0) {
          return input;
        }
        StringBuilder output = new StringBuilder();
        output.append(input.charAt(0));
        for (int idx = 1; idx < input.length(); idx++) {
          if (Character.toString(input.charAt(idx)).equals(character)) {
            if (input.charAt(idx) != input.charAt(idx - 1)) {
              output.append(input.charAt(idx));
            }
          } else {
            output.append(input.charAt(idx));
          }
        }
        return output.toString();
      }
    }