Working with Strings in Luau

Understanding Strings in Luau

Strings in Luau are sequences of characters used to represent text. They can be defined using either single quotes (') or double quotes (").

Here are a few examples:

local singleQuoteString = 'Hello, World!'
local doubleQuoteString = "Hello, World!"

Both methods are valid and interchangeable, allowing you to choose based on your preference or the need to include quotes within the string.

String Concatenation

In Luau, you can concatenate (join) strings using the .. operator. This is useful for building longer strings from smaller ones.

local greeting = 'Hello'
local name = 'Alice'
local fullGreeting = greeting .. ', ' .. name .. '!'
print(fullGreeting)  -- Outputs: Hello, Alice!

As demonstrated, the .. operator combines the strings and adds the necessary punctuation.

Escape Sequences

Escape sequences allow you to include special characters in strings. The backslash (\) is used as an escape character.

  • \n - New line
  • \t - Tab
  • \' - Single quote
  • \" - Double quote
  • \\ - Backslash

For example:

local text = 'She said, "Hello!"
Welcome to the world of Luau.'
print(text)

The String Library

Luau provides a built-in string library that offers various functions for string manipulation. Here are some commonly used functions:

string.format

This function formats strings similarly to C's printf function.

local name = 'Bob'
local age = 25
local formattedString = string.format('%s is %d years old.', name, age)
print(formattedString)  -- Outputs: Bob is 25 years old.

string.sub

The string.sub function extracts a substring from a string.

local str = 'Hello, World!'
local subStr = string.sub(str, 1, 5)
print(subStr)  -- Outputs: Hello

string.upper and string.lower

These functions convert strings to uppercase and lowercase, respectively.

local original = 'Luau'
print(string.upper(original))  -- Outputs: LUAU
print(string.lower(original))  -- Outputs: luau

string.find

The string.find function searches for a substring within a string and returns its position.

local str = 'Hello, World!'
local startPos, endPos = string.find(str, 'World')
print(startPos, endPos)  -- Outputs: 8 12

string.gsub

This function replaces occurrences of a substring with another substring.

local str = 'Hello, World!'
local newStr = string.gsub(str, 'World', 'Luau')
print(newStr)  -- Outputs: Hello, Luau!

string.len

The string.len function returns the length of a string.

local str = 'Hello'
print(string.len(str))  -- Outputs: 5

Introduction to String Patterns

String patterns in Luau allow for advanced string matching and manipulation. They are similar to regular expressions but simpler. Patterns can be used with functions like string.match and string.gmatch.

For example, to find all alphabetic characters in a string:

local str = '123abc456'
for char in string.gmatch(str, '%a') do
    print(char)  -- Outputs: a, b, c
end

This code iterates through each alphabetic character in the string.

Conclusion

Strings are a fundamental part of Luau programming. Understanding how to manipulate them using concatenation, escape sequences, and the string library will enhance your scripting skills in Roblox. Practice using these concepts to become more proficient in Luau!