Miscellaneous

Ruby Substitution (치환)

aappsroot·2014년 2월 2일·조회 2,157

Ruby의 문자열 치환과 대소문자 변환에 대해 간단히 설명드립니다. 아래 예제는 모두 String 객체에서 자주 사용하는 메서드입니다.

sub!로 문자열 치환하기

$ cat test.rb
sarc = "sarc"
sarc.sub! "sarc","tomcat"
puts sarc
$ ruby test.rb
tomcat

sub!를 사용하여 sarctomcat으로 바꾸었습니다. sub는 일치하는 첫 번째 문자열만 치환하고, 이름 끝에 !가 붙은 sub!는 원본 문자열 자체를 변경합니다.

문자열 전체에서 일치하는 모든 부분을 바꾸고 싶다면 gsub!를 사용할 수 있습니다. 여기서 gsubglobal substitution, 즉 전역 치환을 의미합니다.

인덱스 대입을 이용한 부분 문자열 교체

$ cat test.rb
sarc = "tomcat jboss apache nginx"
sarc["tomcat"] = "shecat"
puts sarc
$ ruby test.rb
shecat jboss apache nginx

sarc["tomcat"] = "shecat"처럼 작성하는 인덱스 대입은 문자열 안에서 처음 발견된 tomcatshecat으로 바꿀 수 있습니다. 이 방식도 원본 문자열을 직접 변경합니다.

대소문자 변환하기

$ cat test.rb
sarc = "SARC"
puts sarc.downcase
$ ruby test.rb
sarc

downcase를 사용하여 대문자를 소문자로 바꾸었습니다. 반대로 upcase를 사용하면 소문자를 대문자로 바꿀 수 있습니다.

downcaseupcase는 변환된 새 문자열을 반환합니다. 원본 문자열까지 변경하려면 downcase!, upcase!처럼 !가 붙은 메서드를 사용할 수 있습니다.

첫 글자를 대문자로, 나머지를 소문자로 바꾸기

$ cat test.rb
sarc = "sarc"
puts sarc.capitalize
$ ruby test.rb
Sarc

capitalize를 사용하여 첫 글자를 대문자로 만들고 나머지 문자를 소문자로 바꾸었습니다. 이 메서드도 변환된 문자열을 반환하며, 원본 문자열을 직접 바꾸고 싶다면 capitalize!를 사용할 수 있습니다.

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.