# class StringTools

#### no package

Available on all platforms

This class provides advanced methods on Strings. It is ideally used with `using StringTools` and then acts as an extension to the `String` class.

If the first argument to any of the methods is null, the result is unspecified.

### Static variables

###

`staticwinMetaCharacters:Array<Int> = [" ".code, "(".code, ")".code, "%".code, "!".code, "^".code, "\"".code, "<".code, ">".code, "&".code, "|".code, "\n".code, "\r".code, ",".code, ";".code]`

Available on Linux, macOS, Windows

Character codes of the characters that will be escaped by `quoteWinArg(_, true)`.

### Static methods

###

`staticendsWith (s:String, end:String):Bool`

Tells if the string `s` ends with the string `end`.

If `end` is `null`, the result is unspecified.

If `end` is the empty String `""`, the result is true.

###

`staticisSpace (s:String, pos:Int):Bool`

Available on Android, HTML5, iOS, Linux, macOS, Neko, Windows

Tells if the character in the string `s` at position `pos` is a space.

A character is considered to be a space character if its character code is 9,10,11,12,13 or 32.

If `s` is the empty String `""`, or if pos is not a valid position within `s`, the result is false.

###

`staticlpad (s:String, c:String, l:Int):String`

Available on Android, iOS, Linux, macOS, Neko, Windows

Concatenates `c` to `s` until `s.length` is at least `l`.

If `c` is the empty String `""` or if `l` does not exceed `s.length`, `s` is returned unchanged.

If `c.length` is 1, the resulting String length is exactly `l`.

Otherwise the length may exceed `l`.

If `c` is null, the result is unspecified.

###

`staticltrim (s:String):String`

Available on Android, HTML5, iOS, Linux, macOS, Neko, Windows

Removes leading space characters of `s`.

This function internally calls `isSpace()` to decide which characters to remove.

If `s` is the empty String `""` or consists only of space characters, the result is the empty String `""`.

###

`staticquoteUnixArg (argument:String):String`

Available on Linux, macOS, Windows

Returns a String that can be used as a single command line argument on Unix. The input will be quoted, or escaped if necessary.

###

`staticquoteWinArg (argument:String, escapeMetaCharacters:Bool):String`

Available on Linux, macOS, Windows

Returns a String that can be used as a single command line argument on Windows. The input will be quoted, or escaped if necessary, such that the output will be parsed as a single argument using the rule specified in http://msdn.microsoft.com/en-us/library/ms880421

Examples:

    quoteWinArg("abc") == "abc";
    quoteWinArg("ab c") == '"ab c"';

###

`staticreplace (s:String, sub:String, by:String):String`

Replace all occurrences of the String `sub` in the String `s` by the String `by`.

If `sub` is the empty String `""`, `by` is inserted after each character of `s`. If `by` is also the empty String `""`, `s` remains unchanged.

This is a convenience function for `s.split(sub).join(by)`.

If `sub` or `by` are null, the result is unspecified.

###

`staticrtrim (s:String):String`

Available on Android, HTML5, iOS, Linux, macOS, Neko, Windows

Removes trailing space characters of `s`.

This function internally calls `isSpace()` to decide which characters to remove.

If `s` is the empty String `""` or consists only of space characters, the result is the empty String `""`.

###

`staticstartsWith (s:String, start:String):Bool`

Tells if the string `s` starts with the string `start`.

If `start` is `null`, the result is unspecified.

If `start` is the empty String `""`, the result is true.

###

`statictrim (s:String):String`

Available on Android, HTML5, iOS, Linux, macOS, Neko, Windows

Removes leading and trailing space characters of `s`.

This is a convenience function for `ltrim(rtrim(s))`.

###

`staticurlDecode (s:String):String`

Available on Android, iOS, Linux, macOS, Windows

Decode an URL using the standard format.

###

`staticurlEncode (s:String):String`

Available on Android, iOS, Linux, macOS, Windows

Encode an URL by using the standard format.