* Fixed spelling error and added new information - changed from built in to built-in - added information for .count method * Removed redundant construct
		
			
				
	
	
		
			203 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			203 lines
		
	
	
		
			5.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						||
title: Ruby String Methods
 | 
						||
---
 | 
						||
## Ruby String Methods
 | 
						||
Ruby has many built-in methods to work with strings. Strings in Ruby by default are mutable and can be changed in place or a new string can be returned from a method.
 | 
						||
 | 
						||
### Length:
 | 
						||
 | 
						||
*   The `.length` method returns the number of characters in a string including white-space.
 | 
						||
    ```ruby
 | 
						||
    "Hello".length #=> 5
 | 
						||
    "Hello World!".length #=> 12
 | 
						||
    ```
 | 
						||
    
 | 
						||
### Empty:
 | 
						||
 | 
						||
*   The `.empty?` method returns `true` if a string has a length of zero.
 | 
						||
    ```ruby
 | 
						||
    "Hello".empty? #=> false
 | 
						||
    "!".empty?     #=> false
 | 
						||
    " ".empty?     #=> false
 | 
						||
    "".empty?      #=> true
 | 
						||
    ```
 | 
						||
    
 | 
						||
### Count:
 | 
						||
 | 
						||
*   The `.count` method counts how many times a specific character(s) is found in a string. 
 | 
						||
*   This method is case-sensitive.
 | 
						||
    ```ruby
 | 
						||
    "HELLO".count('L') #=> 2
 | 
						||
    "HELLO WORLD!".count('LO') #=> 1
 | 
						||
    ```
 | 
						||
 | 
						||
### Insert:
 | 
						||
 | 
						||
*   The `.insert` method inserts a string into another string before a given index.
 | 
						||
    ```ruby
 | 
						||
    "Hello".insert(3, "hi5") #=> Helhi5lo # "hi5" is inserted into the string right before the second 'l' which is at index 3
 | 
						||
    ```
 | 
						||
 | 
						||
### Upcase:
 | 
						||
 | 
						||
*   The `.upcase` method transforms all letters in a string to uppercase.
 | 
						||
    ```ruby
 | 
						||
    "Hello".upcase #=> HELLO
 | 
						||
    ```
 | 
						||
 | 
						||
### Downcase:
 | 
						||
 | 
						||
*   The `.downcase` method transforms all letters in a string to lowercase.
 | 
						||
    ```ruby
 | 
						||
    "Hello".downcase #=> hello
 | 
						||
    ```
 | 
						||
### Swapcase
 | 
						||
 | 
						||
* The `.swapcase` method transforms the uppercase latters in a string to lowercase and the lowercase letters to uppercase.
 | 
						||
  ```ruby
 | 
						||
  "hELLO wORLD".swapcase #=> Hello World
 | 
						||
  ```
 | 
						||
 | 
						||
### Capitalize:
 | 
						||
 | 
						||
*   The `.capitalize` method make the first letter in a string uppercase and the rest of the string lowercase.
 | 
						||
    ```ruby
 | 
						||
    "HELLO".capitalize #=> Hello
 | 
						||
    "HELLO, HOW ARE YOU?".capitalize #=> Hello, how are you?
 | 
						||
    ```
 | 
						||
 | 
						||
_Note that the first letter is only capitalized if it is at the beginning of the string._
 | 
						||
    ```ruby
 | 
						||
    "-HELLO".capitalize #=> -hello
 | 
						||
    "1HELLO".capitalize #=> 1hello
 | 
						||
    ```
 | 
						||
 | 
						||
### Reverse:
 | 
						||
 | 
						||
*   The `.reverse` method reverses the order of the characters in a string.
 | 
						||
    ```ruby
 | 
						||
    "Hello World!".reverse #=> "!dlroW olleH"
 | 
						||
    ```
 | 
						||
 | 
						||
### Split:
 | 
						||
 | 
						||
*   The `.split` takes a strings and _splits_ it into an array, then returns the array.
 | 
						||
    ```ruby
 | 
						||
    "Hello, how are you?".split #=> ["Hello,", "how", "are", "you?"]
 | 
						||
    ```
 | 
						||
    
 | 
						||
*   The default method splits the string based on whitespace, unless a different separator is provided (see second example).
 | 
						||
    ```ruby
 | 
						||
    "H-e-l-l-o".split('-') #=> ["H", "e", "l", "l", "o"]
 | 
						||
    ```
 | 
						||
*   To split a word in to individual letters :
 | 
						||
    ``` ruby
 | 
						||
    "hello".split("") #=> ["h", "e", "l", "l", "o"]
 | 
						||
    ```
 | 
						||
    
 | 
						||
### Chop:
 | 
						||
 | 
						||
*   The `.chop` method removes the last character of the string.
 | 
						||
*   A new string is returned, unless you use the `.chop!` method which mutates the original string.
 | 
						||
    ```ruby
 | 
						||
    "Name".chop #=> Nam
 | 
						||
    ```
 | 
						||
 | 
						||
    ```ruby
 | 
						||
    name = "Batman"
 | 
						||
    name.chop
 | 
						||
    name == "Batma" #=> false
 | 
						||
    ```
 | 
						||
 | 
						||
    ```ruby
 | 
						||
    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`).
 | 
						||
    ```ruby
 | 
						||
    "  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.
 | 
						||
    ```ruby
 | 
						||
    "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.
 | 
						||
    ```ruby
 | 
						||
    "15".to_i #=> 15 # integer
 | 
						||
    ```
 | 
						||
    
 | 
						||
### Gsub:
 | 
						||
 | 
						||
*  `gsub` replaces every reference of the first parameter for the second parameter on a string.
 | 
						||
```ruby
 | 
						||
"ruby is cool".gsub("cool", "very cool") #=> "ruby is very cool"
 | 
						||
```
 | 
						||
*  `gsub` also accepts patterns (like *regexp*) as first parameter, allowing things like:
 | 
						||
```ruby
 | 
						||
"ruby is cool".gsub(/[aeiou]/, "*") #=> "r*by *s c**l"
 | 
						||
```
 | 
						||
 | 
						||
### Concatenation:
 | 
						||
 | 
						||
*   Ruby implements some methods to concatenate two strings together:
 | 
						||
 | 
						||
   *  The `+` method:
 | 
						||
  ```ruby
 | 
						||
  "15" + "15" #=> "1515" # string
 | 
						||
  ```
 | 
						||
 | 
						||
   * The `<<` method:
 | 
						||
   ```ruby
 | 
						||
   "15" << "15" #=> "1515" # string
 | 
						||
   ```
 | 
						||
 | 
						||
   * The `concat` method:
 | 
						||
   ```ruby
 | 
						||
   "15".concat "15" #=> "1515" # string
 | 
						||
   ```
 | 
						||
 | 
						||
### Index:
 | 
						||
 | 
						||
*   The `index` method returns the index position of the first occurrance 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.
 | 
						||
 | 
						||
    ```ruby
 | 
						||
    "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.
 | 
						||
    ```ruby
 | 
						||
    a = "abcde"
 | 
						||
    a.clear    #=> ""
 | 
						||
    ```
 | 
						||
    
 | 
						||
 ### Include?:
 | 
						||
 
 | 
						||
 *  Returns true if the string contains the given string or character as an argument.
 | 
						||
    ```ruby
 | 
						||
    "abcde".include?("bc")  #=> true
 | 
						||
    "abcde".include?("pqr") #=> false
 | 
						||
    ```
 | 
						||
    
 | 
						||
 | 
						||
 |