| Home Page | Recent Changes | Preferences

Useful String Functions

Some functions for modifying and working with strings.

+=, @=

These two operators combine string concatenation and assignment. $= doesn't work, that's why += is used here. (see [Scripting Operators])

static final operator string += (out string A, coerce string B)
{
    A = A $ B;
    return A;
}
static final operator string @= (out string A, coerce string B)
{
    A = A @ B;
    return A;
}

Lower

This function is the equivalent to Caps that converts all uppercase characters in a string to lowercase (while leaving non-alphabetical characters untouched).

static final function string Lower(coerce string Text) {

  local int IndexChar;
 
  for (IndexChar = 0; IndexChar < Len(Text); IndexChar++)
    if (Mid(Text, IndexChar, 1) >= "A" &&
        Mid(Text, IndexChar, 1) <= "Z")
      Text = Left(Text, IndexChar) $ Chr(Asc(Mid(Text, IndexChar, 1)) + 32) $ Mid(Text, IndexChar + 1);

  return Text;
  }

IsUpper, IsLower

These functions detect whether a string is completely uppercase or lowercase.

static final function bool IsUpper(coerce string S)
{
    return S == Caps(S);
}
static final function bool IsLower(coerce string S)
{
    return S == Lower(S);
}

AlphaNumeric

This function leaves only alphanumerical characters in the string, i.e. A-Z and 0-9, and converts alphabetical characters to uppercase. Useful for sorting items by name.

static final function string AlphaNumeric(string s)
{
    local string result;
    local int i, c;
    
    for (i = 0; i < Len(s); i++) {
        c = Asc(Right(s, Len(s) - i));
        if ( c == Clamp(c, 48, 57) ) // 0-9
            result = result $ Chr(c);
        else if ( c == Clamp(c, 65, 90) ) // A-Z
            result = result $ Chr(c);
        else if ( c == Clamp(c, 97, 122) ) // a-z
            result = result $ Chr(c - 32);  // convert to uppercase
    }
    
    return result;
}

LTrim, RTrim, Trim

These functions remove spaces from the left, the right or both sides of a string.

static final function string LTrim(coerce string S)
{
    while (Left(S, 1) == " ")
        S = Right(S, Len(S) - 1);
    return S;
}
static final function string RTrim(coerce string S)
{
    while (Right(S, 1) == " ")
        S = Left(S, Len(S) - 1);
    return S;
}
static final function string Trim(coerce string S)
{
    return LTrim(RTrim(S));
}

ReplaceText

This function replaces any occurance of a substring Replace inside a string Text with the string With. This is a modified version of the ReplaceText function available in the UWindowWindow class which doesn't return the string but assigns it to the variable Text.

static final function string ReplaceText(coerce string Text, coerce string Replace, coerce string With)
{
    local int i;
    local string Output;
    
    i = InStr(Text, Replace);
    while (i != -1) {   
        Output = Output $ Left(Text, i) $ With;
        Text = Mid(Text, i + Len(Replace)); 
        i = InStr(Text, Replace);
    }
    Output = Output $ Text;
    return Output;
}

Related Topics

The Unreal Engine Documentation Site

Wiki Community

Topic Categories

Image Uploads

Random Page

Recent Changes

Offline Wiki

Unreal Engine

Console Commands

Terminology

Mapping Topics

Mapping Lessons

UnrealEd Interface

Questions&Answers

Scripting Topics

Scripting Lessons

Making Mods

Class Tree

Questions&Answers

Modeling Topics

Questions&Answers

Log In