How do I convert a string to uppercase or lowercase in EK9?

← Common String Operations · Ref: Q172

EK9 strings have .upperCase() and .lowerCase() methods that return new strings.

UPPERCASE

Convert to all uppercase letters:

  upper <- myString.upperCase()

Returns a new string. The original is unchanged.

LOWERCASE

Convert to all lowercase letters:

  lower <- myString.lowerCase()

CASE-INSENSITIVE COMPARISON

Convert both strings to the same case before comparing:

  if input.lowerCase() == "yes"
    stdout.println("Confirmed")

See Q37 for comprehensive string operations.

See Q37 for strings. See Q170 for string length.

Example

defines module qa.stringops.caseconversion

  defines program
    StringCaseDemo()
      stdout <- Stdout()

      mixed <- "Hello World"

      // === UPPERCASE ===

      upper <- mixed.upperCase()
      stdout.println(`Upper: ${upper}`)

      // === LOWERCASE ===

      lower <- mixed.lowerCase()
      stdout.println(`Lower: ${lower}`)

      // Original unchanged
      stdout.println(`Original: ${mixed}`)

      // === CASE-INSENSITIVE COMPARISON ===

      input <- "YES"
      if input.lowerCase() == "yes"
        stdout.println("Confirmed (case-insensitive)")

      userInput <- "hello"
      if userInput.upperCase() == "HELLO"
        stdout.println("Match (case-insensitive)")

      // === PRACTICAL: NORMALIZE BEFORE LOOKUP ===

      config <- {"debug": "true", "verbose": "false"}
      key <- "DEBUG"
      normalized <- config.getOrDefault(key.lowerCase(), "false")
      stdout.println(`Config ${key}: ${normalized}`)

Common mistakes

E50060 — String has no toUpperCase() method. The correct method name in EK9 is upperCase(). See ek9 -h E50060 for details.

Incorrect:

upper <- mixed.toUpperCase()

Correct:

upper <- mixed.upperCase()

E11068 — Concatenating 3 or more string parts with + triggers E11068. Use backtick interpolation instead. See ek9 -h E11068 for details.

Incorrect:

stdout.println("Config " + key + ": " + normalized)

Correct:

stdout.println(`Config ${key}: ${normalized}`)

E50060 — String has no toUpper() method. The correct EK9 method is upperCase(). Use 'ek9 -h String' to see the full API. See ek9 -h E50060 for details.

Incorrect:

upper <- mixed.toUpper()

Correct:

upper <- mixed.upperCase()
Other ways to ask this
  • What is the EK9 equivalent of toUpperCase()?
  • How do I change string case in EK9?
  • How do I make a string all caps or all lowercase in EK9?

Coming from another language?

Java: str.toUpperCase(), str.toLowerCase(). Python: str.upper(), str.lower(). Rust: str.to_uppercase(), str.to_lowercase(). Go: strings.ToUpper(), strings.ToLower(). JavaScript: str.toUpperCase(), str.toLowerCase(). Kotlin: str.uppercase(), str.lowercase(). EK9: str.upperCase(), str.lowerCase().

Keywords: upper, convert, toUpperCase, toLowerCase, lowercase, uppercase, string, text, lower, case