Bird
Raised Fist0
Terraformcloud~10 mins

String functions (join, split, format) in Terraform - Step-by-Step Execution

Choose your learning style10 modes available
Process Flow - String functions (join, split, format)
Start with strings
↓
Use split() to break string into list
↓
Use join() to combine list into string
↓
Use format() to create formatted string
↓
Output final string or list
This flow shows how Terraform string functions split, join, and format work step-by-step to transform strings and lists.
Execution Sample
Terraform
locals {
  my_string = "apple,banana,cherry"
  my_list = split(",", local.my_string)
  joined_string = join(";", local.my_list)
  formatted_string = format("Fruits: %s", local.joined_string)
}
This code splits a comma-separated string into a list, joins the list with semicolons, then formats a string with the result.
Process Table
StepActionInputResult
1Define my_string"apple,banana,cherry""apple,banana,cherry"
2Split my_string by ','"apple,banana,cherry"["apple", "banana", "cherry"]
3Join list with ';'["apple", "banana", "cherry"]"apple;banana;cherry"
4Format string with joined_string"Fruits: %s", "apple;banana;cherry""Fruits: apple;banana;cherry"
5End of executionFinal formatted string ready
💡 All string functions executed; final formatted string produced.
Status Tracker
VariableStartAfter Step 2After Step 3After Step 4
my_string"apple,banana,cherry""apple,banana,cherry""apple,banana,cherry""apple,banana,cherry"
my_listundefined["apple", "banana", "cherry"]["apple", "banana", "cherry"]["apple", "banana", "cherry"]
joined_stringundefinedundefined"apple;banana;cherry""apple;banana;cherry"
formatted_stringundefinedundefinedundefined"Fruits: apple;banana;cherry"
Key Moments - 3 Insights
Why does split() output a list instead of a string?
split() breaks the original string into parts based on the separator, producing a list of strings as shown in step 2 of the execution_table.
What happens if join() is used on a string instead of a list?
join() requires a list input; using a string will cause an error. In the execution_table, join() correctly receives a list at step 3.
How does format() insert the joined string into the final output?
format() replaces %s with the joined_string value, creating a new formatted string as shown in step 4.
Visual Quiz - 3 Questions
Test your understanding
Look at the execution_table, what is the value of my_list after step 2?
A["apple", "banana", "cherry"]
B"apple,banana,cherry"
C["apple;banana;cherry"]
D"Fruits: apple;banana;cherry"
💡 Hint
Check the 'Result' column for step 2 in the execution_table.
At which step does the variable joined_string get its value?
AStep 4
BStep 2
CStep 3
DStep 1
💡 Hint
Look at the variable_tracker for joined_string changes.
If the separator in split() changed from ',' to ';', how would my_list look after step 2?
A["apple", "banana", "cherry"]
B["apple,banana,cherry"]
C["apple", "banana;cherry"]
D["apple;banana", "cherry"]
💡 Hint
split() breaks string by the exact separator; check step 2 input and output.
Concept Snapshot
Terraform string functions:
- split(separator, string): breaks string into list by separator
- join(separator, list): combines list into string with separator
- format(format_string, values...): creates formatted string
Use split to get list, join to combine, format to build output string.
Full Transcript
This visual execution traces Terraform string functions: split, join, and format. Starting with a string 'apple,banana,cherry', split() breaks it into a list by commas. Then join() combines the list into a string separated by semicolons. Finally, format() inserts the joined string into a formatted message. Variables change step-by-step, showing how each function transforms data. Key moments clarify common confusions about input and output types. Quizzes test understanding of variable states and function effects.

Practice

(1/5)
1. What does the Terraform function join(",", ["a", "b", "c"]) return?
easy
A. "a,b,c"
B. ["a", "b", "c"]
C. "a b c"
D. "abc"

Solution

  1. Step 1: Understand the join function

    The join function combines list elements into a single string using the given separator.
  2. Step 2: Apply join with separator ','

    Joining ["a", "b", "c"] with "," results in the string "a,b,c".
  3. Final Answer:

    "a,b,c" -> Option A
  4. Quick Check:

    join with comma = "a,b,c" [OK]
Hint: Join combines list items with separator into one string [OK]
Common Mistakes:
  • Confusing join output with original list
  • Using space instead of comma as separator
  • Expecting a list instead of a string
2. Which of the following is the correct syntax to split the string "one,two,three" into a list using Terraform?
easy
A. format(",", "one,two,three")
B. split("one,two,three", ",")
C. split(",", "one,two,three")
D. join(",", "one,two,three")

Solution

  1. Step 1: Recall split function syntax

    The split function takes the separator first, then the string to split.
  2. Step 2: Match correct argument order

    Only split(",", "one,two,three") matches the correct syntax.
  3. Final Answer:

    split(",", "one,two,three") -> Option C
  4. Quick Check:

    split(separator, string) = split(",", "one,two,three") [OK]
Hint: split(separator, string) order matters in Terraform [OK]
Common Mistakes:
  • Swapping arguments order in split
  • Using join instead of split
  • Using format instead of split
3. What is the output of this Terraform expression?
format("Hello %s, you have %d messages", "Alice", 5)
medium
A. "Hello Alice, you have 5 messages"
B. "Hello Alice, you have %d messages"
C. "Hello %s, you have %d messages"
D. "Hello %s, you have 5 messages"

Solution

  1. Step 1: Understand format placeholders

    %s is replaced by string, %d by integer in order.
  2. Step 2: Replace placeholders with arguments

    "Alice" replaces %s, 5 replaces %d, producing "Hello Alice, you have 5 messages".
  3. Final Answer:

    "Hello Alice, you have 5 messages" -> Option A
  4. Quick Check:

    format with %s and %d = formatted string [OK]
Hint: format replaces %s and %d placeholders in order [OK]
Common Mistakes:
  • Not replacing placeholders
  • Mixing up %s and %d types
  • Expecting original string without substitution
4. Identify the error in this Terraform code snippet:
locals {
  parts = split(",", "apple,banana,orange")
  result = join(";", parts)
  message = format("Fruits: %s", result)
}
medium
A. join separator should be a list, not a string
B. split function arguments are reversed
C. format placeholder %s cannot accept a string
D. No error, code is correct

Solution

  1. Step 1: Check split function usage

    split separator and string are correctly ordered.
  2. Step 2: Check join and format usage

    join uses string separator ";" correctly; format uses %s for string correctly.
  3. Final Answer:

    No error, code is correct -> Option D
  4. Quick Check:

    split, join, format used correctly = No error, code is correct [OK]
Hint: Check argument order and placeholder types carefully [OK]
Common Mistakes:
  • Swapping split arguments
  • Using wrong placeholder in format
  • Passing wrong types to join
5. You have a list of IP addresses: ["10.0.0.1", "10.0.0.2", "10.0.0.3"]. You want to create a single string with these IPs separated by commas, but enclosed in square brackets like this:
[10.0.0.1,10.0.0.2,10.0.0.3]
Which Terraform expression achieves this?
hard
A. join(",", format("[%s]", ["10.0.0.1", "10.0.0.2", "10.0.0.3"]))
B. format("[%s]", join(",", ["10.0.0.1", "10.0.0.2", "10.0.0.3"]))
C. split(",", format("[%s]", join(",", ["10.0.0.1", "10.0.0.2", "10.0.0.3"])))
D. format(join(",", ["10.0.0.1", "10.0.0.2", "10.0.0.3"]), "[%s]")

Solution

  1. Step 1: Join IP list with commas

    Using join(",", [...]) creates "10.0.0.1,10.0.0.2,10.0.0.3".
  2. Step 2: Use format to add square brackets

    Wrapping the joined string with format("[%s]", ...) adds brackets around it.
  3. Final Answer:

    format("[%s]", join(",", ["10.0.0.1", "10.0.0.2", "10.0.0.3"])) -> Option B
  4. Quick Check:

    join then format = format("[%s]", join(",", ["10.0.0.1", "10.0.0.2", "10.0.0.3"])) [OK]
Hint: Join first, then format to add brackets [OK]
Common Mistakes:
  • Trying to format before join
  • Using split instead of join
  • Incorrect argument order in format
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard