.. index:: single: Strings; Introduction ======= Strings ======= In this chapter we are going to learn about strings creation and manipulation. .. index:: pair: Strings; String Literals String Literals =============== Syntax: .. code-block:: ring cStr = "This is a string" cStr2 = 'Another string' cStr3 = :JustAnotherString cStr4 = `Yet "another" 'string' ! ` .. index:: pair: Strings; Get String Length Get String Length ================= We can get the string length (letters count inside a string) using the len() function Syntax: .. code-block:: ring len(string) ---> string length Example: .. code-block:: ring cStr = "How are you?" see cStr + nl see "String size : " + len(cStr) + nl .. index:: pair: Strings; Convert Letters Case Convert Letters Case ==================== Syntax: .. code-block:: ring lower(string) ---> convert string letters to lower case upper(string) ---> convert string letters to UPPER case Example: .. code-block:: ring cStr = "Welcome To The Ring Programming Language" see cStr + nl + upper(cStr) + nl + lower(cStr) .. index:: pair: Strings; Access String Letters Access String Letters ===================== We can access a letter inside a string by the letter index Syntax: .. code-block:: ring string[index] ---> get string letter string[index] = letter # set string letter Example: .. code-block:: ring # print user name letter by letter (each letter in new line) See "Hello, Enter your name : " give cName for x = 1 to len(cName) see nl + cName[x] next We can use for in to get string letters. Example: .. code-block:: ring # print user name letter by letter (each letter in new line) See "Hello, Enter your name : " give cName for x in cName see nl + x next We can modify the string letters Example: .. code-block:: ring # convert the first letter to UPPER case See "Enter your name : " give cName cName[1] = upper(cName[1]) see "Hello " + cName .. index:: pair: Strings; Left() Left() Function =============== We can get a specified number of characters from a string using the Left() function. The starting position is 1. Syntax: .. code-block:: ring Left(string,count) Example: .. code-block:: ring see left("Hello World!",5) # print Hello .. index:: pair: Strings; Right() Right() Function ================ We can get a specified number of characters from a string using the Right() function. The starting position is the last character on the right. Syntax: .. code-block:: ring Right(string,count) Example: .. code-block:: ring see Right("Hello World!",6) # print World! .. index:: pair: Strings; Trim() Trim() Function =============== We can remove all leading and trailing spaces from a string using the Trim() function. Syntax: .. code-block:: ring trim(string) Example: .. code-block:: ring cMsg = " Welcome " see trim(cMsg) # print Welcome .. index:: pair: Strings; Copy() Copy() Function =============== We can duplicate a string more than one time using the copy() function. Syntax: .. code-block:: ring copy(string,nCount) ---> string replicated nCount times Example .. code-block:: ring see copy("***hello***",3) # print ***hello******hello******hello*** .. index:: pair: Strings; Lines() Lines() Function ================ We can count the number of lines inside a string using the Lines() function. Syntax: .. code-block:: ring lines(string) ---> Number of lines inside the string Example: .. code-block:: ring cStr = "Hello How are you? are you fine?" see lines(cStr) # print 3 .. index:: pair: Strings; Substr() Substr() Function ================= We can work on sub strings inside a string using the substr() function. Using Substr() we can * Find substring * Get substring from position to end * Get Number of characters from position * Transform Substring To Another Substring .. index:: pair: Strings; Find SubString Find substring ============== Syntax: .. code-block:: ring substr(string,substring) ---> the starting position of substring in string Example: .. code-block:: ring cStr = "Welcome to the Ring programming language" see substr(cStr,"Ring") # print 16 .. index:: pair: Strings; Get Substring from position to end Get substring from position to end ================================== Syntax: .. code-block:: ring substr(string,position) ---> Get substring starting from position to end Example: .. code-block:: ring cStr = "Welcome to the Ring programming language" nPos = substr(cStr,"Ring") # nPos = 16 see substr(cStr,nPos) # print Ring programming language .. index:: pair: Strings; Get Number of Characters from position Get Number of Characters From Position ====================================== Syntax: .. code-block:: ring substr(string,position,count) ---> Get characters starting from position Example: .. code-block:: ring cStr = "Welcome to the Ring programming language" nPos = substr(cStr,"Ring") # nPos = 16 see substr(cStr,nPos,4) # print Ring .. index:: pair: Strings; Transform Substring To Another Substring Transform Substring To Another Substring ======================================== Syntax: .. code-block:: ring substr(string,substring,newsubstring) ---> Transformed string (Match case) substr(string,substring,newsubstring,1) ---> Transformed string (Ignore case) Example: .. code-block:: ring cStr = "Welcome to the New programming language" see substr(cStr,"New","Ring") + nl # print Welcome to the Ring programming language see substr(cStr,"new","Ring",1)+ nl # print Welcome to the Ring programming language .. index:: pair: Strings; strcmp() strcmp() Function ================= We can compare between two strings using the strcmp() function. Syntax: .. code-block:: ring strcmp(cString1,cString2) ---> value = 0 if cString1 = cString2 value < 0 if cString1 < cString2 value > 0 if cString1 > cString2 Example: .. code-block:: ring see strcmp("hello","hello") + nl + strcmp("abc","bcd") + nl + strcmp("bcd","abc") + nl Output: .. code-block:: ring 0 -1 1 .. index:: pair: Strings; str2list() and list2str() str2list() and list2str() Functions =================================== We can convert string lines to list items using the str2list() function. Also we can convert the list to a string using list2str() function. Syntax: .. code-block:: ring str2list(string) ---> list contains the string lines list2str(list) ---> string contains the list items Example: .. code-block:: ring /* output: ** Items : 4 ** Item : Hello ** Item : How are you ? ** Item : are you fine ? ** Item : ok ** list2Str result = Hello ** How are you ? ** are you fine ? ** ok ** Done */ mystr = "Hello How are you ? are you fine ? ok" mylist = str2list(mystr) see "Items : " + len(mylist) + nl for x in mylist see "Item : " + x + nl next newstr = list2str(mylist) see "list2Str result = " + newstr if mystr = newstr see nl + "Done" else see nl + "Error!" ok