Ruby의 문자열 치환과 대소문자 변환에 대해 간단히 설명드립니다. 아래 예제는 모두 String 객체에서 자주 사용하는 메서드입니다.
sub!로 문자열 치환하기
$ cat test.rb sarc = "sarc" sarc.sub! "sarc","tomcat" puts sarc $ ruby test.rb tomcat
sub!를 사용하여 sarc를 tomcat으로 바꾸었습니다. sub는 일치하는 첫 번째 문자열만 치환하고, 이름 끝에 !가 붙은 sub!는 원본 문자열 자체를 변경합니다.
문자열 전체에서 일치하는 모든 부분을 바꾸고 싶다면 gsub!를 사용할 수 있습니다. 여기서 gsub는 global substitution, 즉 전역 치환을 의미합니다.
인덱스 대입을 이용한 부분 문자열 교체
$ cat test.rb sarc = "tomcat jboss apache nginx" sarc["tomcat"] = "shecat" puts sarc $ ruby test.rb shecat jboss apache nginx
sarc["tomcat"] = "shecat"처럼 작성하는 인덱스 대입은 문자열 안에서 처음 발견된 tomcat을 shecat으로 바꿀 수 있습니다. 이 방식도 원본 문자열을 직접 변경합니다.
대소문자 변환하기
$ cat test.rb sarc = "SARC" puts sarc.downcase $ ruby test.rb sarc
downcase를 사용하여 대문자를 소문자로 바꾸었습니다. 반대로 upcase를 사용하면 소문자를 대문자로 바꿀 수 있습니다.
downcase와 upcase는 변환된 새 문자열을 반환합니다. 원본 문자열까지 변경하려면 downcase!, upcase!처럼 !가 붙은 메서드를 사용할 수 있습니다.
첫 글자를 대문자로, 나머지를 소문자로 바꾸기
$ cat test.rb sarc = "sarc" puts sarc.capitalize $ ruby test.rb Sarc
capitalize를 사용하여 첫 글자를 대문자로 만들고 나머지 문자를 소문자로 바꾸었습니다. 이 메서드도 변환된 문자열을 반환하며, 원본 문자열을 직접 바꾸고 싶다면 capitalize!를 사용할 수 있습니다.