pat coding

[Ruby] Array 정리 본문

Language/RubyOnRails

[Ruby] Array 정리

uuukpyo 2020. 2. 4. 11:55
728x90

1. 배열 만들기

 

# 기본적인 배열 만들기
arr = []
arr2 = Array.new 

# 여러가지 배열 만들기 
arr_with_stuff = ["value", "separated by comma"] 
arr_with_stuff2 = Array.new(["a", "b", "c"])
range_to_arr = (1..9).to_a 

# 중복 배열 만들기 
arr = Array.new(5, " ")
puts -> [" ", " ", " ", " ", " "]

# %w 를 통한 문자열 배열 만들기
arr = %w(cat dog mouse 1 2)
puts -> ["cat", "dog", "mouse", "1", "2"]

2. 메소드

 

- split

# 문자열을 배열로 분할
# 분할하려는 인수를 넣지 않으면 공백으로 분할 됩니다.

arr = "this is a string".split 
puts arr  
-> [ "this", "is", "a", "string"]  

"hey".split("") #-> [ "h", "e ","y"]

arr = "this/is/a/string".split("/")
puts arr
-> [ "this", "is", "a", "string"] 

 

- join

# 배열을 문자열로 변환
# 인수를 넣으면 배열 사이에 인수가 추가된다.

arr = %w(cat dog mouse)

str = arr.join(", ")
puts str
-> "cat, dog, mouse"

str2 = arr.join
puts str2
-> "catdogmouse"

 

- include

# 배열안에 포함되어 있는지 확인

arr = %w(cat dog mouse)
arr.include?("cat") # -> true   
arr.include?("zzz") #-> false

 

- length

# 배열의 크기

arr = %w(cat dog mouse cow pig)
arr.length # -> 5
arr.size # -> 5

3. 데이터 추가 및 삭제 

 

1. 추가 

# 뒤 쪽에 추가 
arr = %w(cat dog mouse)

arr[0] = "lynx"
puts arr
-> ["lynx", "dog", "mouse"]

arr = %w(cat dog mouse)
arr << "cobra" 
puts arr
-> ["cat", "dog", "mouse", "cobra"]

arr.push("crow") 
puts arr
-> ["cat", "dog", "mouse", "cobra", "crow"]

arr.push("cow", "bee")
puts arr
-> ["cat", "dog", "mouse", "cobra", "crow", "cow", "bee"]

# 앞 쪽에 추가
arr = %w(cat dog mouse)

arr.unshift("clam") 
puts arr
-> ["clam", "cat", "dog", "mouse"]

arr.unshift("cow", "bee")
puts arr
-> ["cow", "bee", "clam", "cat", "dog", "mouse"]

# 원하는 인덱스에 추가 
arr = %w(cat dog mouse)

arr.insert(1, "cow")
puts arr
-> ["cat", "cow", "dog", "mouse"]

arr.insert(1, "bee", "pig")
puts arr
-> ["cat", "bee", "pig", "cow", "dog", "mouse"]

 

2. 삭제

# 기본적인 삭제
arr = %w(cat dog mouse)
arr.delete("cat") 
puts arr 
-> ["dog", "mouse"]

arr = ["dog", "mouse"]
arr.delete("cat") 
puts arr
-> nil

arr = %w(cat dog mouse pig cow)
arr2 = arr - ["cat", "mouse"]
puts arr2
-> ["dog", "pig", "cow"]

# 인덱스로 삭제
arr = %w(cat dog mouse)
arr.delete_at(0) 
puts arr 
-> ["dog", "mouse"]

arr = ["dog", "mouse"]
arr.delete_at(100) 
-> nil

# 마지막 데이터 삭제
arr = %w(cat dog mouse)
arr.pop  -> "mouse"
arr -> ["cat", "dog"]
arr.pop  -> "dog"
arr.pop  -> "cat" 
arr.pop  -> nil

# 첫 데이터 삭제 
arr = %w(cat dog mouse)
arr.shift # -> "cat"
arr -> ["dog", "mouse"]
arr.shift -> "dog" 
arr.shift -> "mouse"
arr.shift -> nil

 

728x90

'Language > RubyOnRails' 카테고리의 다른 글

[Ruby]예외 처리  (0) 2020.03.09
[ruby] method  (0) 2020.02.27
rails controller  (0) 2020.01.09
[Ruby excel] write_xlsx 를 통한 엑셀 설정  (0) 2020.01.07
Active Record의 정의  (1) 2019.12.24
Comments