Méthodes Ruby String expliquées - Longueur, vide et autres méthodes intégrées

Ruby a de nombreuses méthodes intégrées pour travailler avec des chaînes. Les chaînes de Ruby par défaut sont mutables et peuvent être modifiées sur place ou une nouvelle chaîne peut être renvoyée à partir d'une méthode.

Longueur

La .lengthpropriété renvoie le nombre de caractères dans une chaîne, y compris les espaces blancs.

"Hello".length #=> 5 "Hello World!".length #=> 12

Vide

La .empty?méthode renvoie truesi une chaîne a une longueur de zéro.

"Hello".empty? #=> false "!".empty? #=> false " ".empty? #=> false "".empty? #=> true

Compter

La .countméthode compte le nombre de fois qu'un ou plusieurs caractères spécifiques sont trouvés dans une chaîne.

Cette méthode est sensible à la casse.

"HELLO".count('L') #=> 2 "HELLO WORLD!".count('LO') #=> 1

Insérer

La .insertméthode insère une chaîne dans une autre chaîne avant un index donné.

"Hello".insert(3, "hi5") #=> Helhi5lo # "hi5" is inserted into the string right before the second 'l' which is at index 3

Upcase

La .upcaseméthode transforme toutes les lettres d'une chaîne en majuscules.

"Hello".upcase #=> HELLO

Downcase

La .downcaseméthode transforme toutes les lettres d'une chaîne en minuscules.

"Hello".downcase #=> hello

Boîte d'échange

La .swapcaseméthode transforme les dernières majuscules en une chaîne en minuscules et les minuscules en majuscules.

"hELLO wORLD".swapcase #=> Hello World

Capitaliser

La .capitalizeméthode rend la première lettre d'une chaîne en majuscule et le reste de la chaîne en minuscule.

"HELLO".capitalize #=> Hello "HELLO, HOW ARE YOU?".capitalize #=> Hello, how are you?

Notez que la première lettre n'est en majuscule que si elle se trouve au début de la chaîne.ruby "-HELLO".capitalize #=> -hello "1HELLO".capitalize #=> 1hello

Inverser

La .reverseméthode inverse l'ordre des caractères dans une chaîne.

"Hello World!".reverse #=> "!dlroW olleH"

Divisé

Le .splitprend une chaîne et la divise en un tableau, puis renvoie le tableau.

"Hello, how are you?".split #=> ["Hello,", "how", "are", "you?"]

La méthode par défaut divise la chaîne en fonction des espaces, sauf si un séparateur différent est fourni (voir le deuxième exemple).

"H-e-l-l-o".split('-') #=> ["H", "e", "l", "l", "o"]

Hacher

La .chopméthode supprime le dernier caractère de la chaîne.

A new string is returned, unless you use the .chop! method which mutates the original string.

"Name".chop #=> Nam
name = "Batman" name.chop name == "Batma" #=> false
name = "Batman" name.chop! name == "Batma" #=> true

Strip

The .strip method removes the leading and trailing whitespace on strings, including tabs, newlines, and carriage returns (\t, \n, \r).

" Hello ".strip #=> Hello

Chomp

The .chomp method removes the last character in a string, only if it’s a carriage return or newline (\r, \n).

This method is commonly used with the gets command to remove returns from user input.

"hello\r".chomp #=> hello "hello\t".chomp #=> hello\t # because tabs and other whitespace remain intact when using `chomp`

To Integer

The .to_i method converts a string to an integer.

"15".to_i #=> 15 # integer

Gsub

gsub replaces every reference of the first parameter for the second parameter on a string.

"ruby is cool".gsub("cool", "very cool") #=> "ruby is very cool"

gsub also accepts patterns (like regexp) as first parameter, allowing things like:

"ruby is cool".gsub(/[aeiou]/, "*") #=> "r*by *s c**l"

Concatenation

Ruby implements some methods to concatenate two strings together.

The + method:

"15" + "15" #=> "1515" # string

The << method:

"15" < "1515" # string

The concat method:

"15".concat "15" #=> "1515" # string

Index

The index method returns the index position of the first occurrence of the substring or regular expression pattern match in a string. If there is no match found, nil is returned.

A second optional parameter indicates which index position in the string to begin searching for a match.

"information".index('o') #=> 3 "information".index('mat') #=> 5 "information".index(/[abc]/) #=> 6 "information".index('o', 5) #=> 9 "information".index('z') #=> nil

Clear

Removes string content.

a = "abcde" a.clear #=> ""