A data pipeline often starts by trimming and reshaping input into predictable fields.

normalization Normalizing input once gives later pipeline stages a cleaner value to use.
derived field The slug is derived from the display name, so it stays consistent with the cleaned input.

Input Normalization

rawName
InputNormalization.java
Replay: real traced execution (multi-file project)
public class InputNormalization {
    record UserLabel(String displayName, String slug) {}

    static UserLabel normalize(String rawName) {
        String trimmed = rawName.trim();
        String displayName = trimmed.replaceAll("\\s+", " ");
        String slug = displayName.toLowerCase().replaceAll("\\s+", "-");
        return new UserLabel(displayName, slug);
    }

    public static void main(String[] args) {
        String rawName = "  Trace Bot  ";
        UserLabel label = normalize(rawName);

        System.out.println("name=" + label.displayName());
        System.out.println("slug=" + label.slug());
    }
}
public class InputNormalization {
    record UserLabel(String displayName, String slug) {}

    static UserLabel normalize(String rawName) {
        String trimmed = rawName.trim();
        String displayName = trimmed.replaceAll("\\s+", " ");
        String slug = displayName.toLowerCase().replaceAll("\\s+", "-");
        return new UserLabel(displayName, slug);
    }

    public static void main(String[] args) {
        String rawName = "  Ada Lovelace  ";
        UserLabel label = normalize(rawName);

        System.out.println("name=" + label.displayName());
        System.out.println("slug=" + label.slug());
    }
}
public class InputNormalization {
    record UserLabel(String displayName, String slug) {}

    static UserLabel normalize(String rawName) {
        String trimmed = rawName.trim();
        String displayName = trimmed.replaceAll("\\s+", " ");
        String slug = displayName.toLowerCase().replaceAll("\\s+", "-");
        return new UserLabel(displayName, slug);
    }

    public static void main(String[] args) {
        String rawName = "  Java Guide  ";
        UserLabel label = normalize(rawName);

        System.out.println("name=" + label.displayName());
        System.out.println("slug=" + label.slug());
    }
}
  1. rawName ← Trace Bot

    11public static void main(String[] args) {12    String rawName→   Trace Bot   = "  Trace Bot  ";  //@rawName="  Ada Lovelace  ", "  Java Guide  "13    UserLabel label = normalize(rawName  Trace Bot  );
  2. trimmed ← Trace Bot, displayName ← Trace Bot, slug ← trace-bot

    4static UserLabel normalize(String rawName  Trace Bot  ) {5    String trimmed→ Trace Bot = rawName.trim();6    String displayName→ Trace Bot = trimmed.replaceAll("\\s+", " ");7    String slug→ trace-bot = displayName.toLowerCase().replaceAll("\\s+", "-");8    return new UserLabel(displayName, slug);9}
  3. label ← UserLabel[displayName=Trace Bot, slug=trace-bot]

    12    String rawName = "  Trace Bot  ";  //@rawName="  Ada Lovelace  ", "  Java Guide  "13    UserLabel label→ UserLabel[displayName=Trace Bot, slug=trace-bot] = normalize(rawName  Trace Bot  );1415    System.out.println("name=" + label.displayName());16    System.out.println("slug=" + label.slug());17}
    outputname=Trace Bot
    slug=trace-bot
  1. rawName ← Ada Lovelace

    11public static void main(String[] args) {12    String rawName→   Ada Lovelace   = "  Ada Lovelace  ";13    UserLabel label = normalize(rawName  Ada Lovelace  );
  2. trimmed ← Ada Lovelace, displayName ← Ada Lovelace, slug ← ada-lovelace

    4static UserLabel normalize(String rawName  Ada Lovelace  ) {5    String trimmed→ Ada Lovelace = rawName.trim();6    String displayName→ Ada Lovelace = trimmed.replaceAll("\\s+", " ");7    String slug→ ada-lovelace = displayName.toLowerCase().replaceAll("\\s+", "-");8    return new UserLabel(displayName, slug);9}
  3. label ← UserLabel[displayName=Ada Lovelace, slug=ada-lovelace]

    12    String rawName = "  Ada Lovelace  ";13    UserLabel label→ UserLabel[displayName=Ada Lovelace, slug=ada-lovelace] = normalize(rawName  Ada Lovelace  );1415    System.out.println("name=" + label.displayName());16    System.out.println("slug=" + label.slug());17}
    outputname=Ada Lovelace
    slug=ada-lovelace
  1. rawName ← Java Guide

    11public static void main(String[] args) {12    String rawName→   Java Guide   = "  Java Guide  ";13    UserLabel label = normalize(rawName  Java Guide  );
  2. trimmed ← Java Guide, displayName ← Java Guide, slug ← java-guide

    4static UserLabel normalize(String rawName  Java Guide  ) {5    String trimmed→ Java Guide = rawName.trim();6    String displayName→ Java Guide = trimmed.replaceAll("\\s+", " ");7    String slug→ java-guide = displayName.toLowerCase().replaceAll("\\s+", "-");8    return new UserLabel(displayName, slug);9}
  3. label ← UserLabel[displayName=Java Guide, slug=java-guide]

    12    String rawName = "  Java Guide  ";13    UserLabel label→ UserLabel[displayName=Java Guide, slug=java-guide] = normalize(rawName  Java Guide  );1415    System.out.println("name=" + label.displayName());16    System.out.println("slug=" + label.slug());17}
    outputname=Java Guide
    slug=java-guide