루비로 이것 저것 만들기 시작하니 참 재미있고,
편리하다는 생각이 든다.
오늘은 어제랑 완전 반대인 예제를 만들었다.
testClassMethod 라는 문자열을 주면 test_class_method의 형식으로 변환해 주는
메서드를 만들어 보았다.
기능은 반대인데 코드는 그다지 닮지 않았다.
이번 예제에서 사용된 중요한 메서드는 gsub메서드인데 풀어쓰면
global substitute정도 될라나? 아래 레퍼런스를 참고하는게 확실하긴 하지만,
간단히 설명하면, 정규식을 사용해서 스트링내부의 문자열을 치환하는 기능을 제공한다.
자바로 치면 replaceAll() 정도 되는 메서드이다. 자주 사용될듯.
나는 책보고 했는데, 책이 없으신분들은 아래 사이트를 참고하자.
http://ruby-doc.org/core-1.9.3/String.html#method-i-gsub
책은 프로그래밍 루비 790쪽에 레퍼런스가 있다.
코드는 아래와 같다.
#!/usr/bin/ruby def makeDowncase(val) val = val.gsub(/[A-Z]/) {|x| '_' + x.downcase} puts val end print "input CamelCases : " vars = gets varList = vars.split(" ") varList.each { |x| makeDowncase(x)}
실행하면 아래와 같이 나오고
input CamelCase : testClassMethod1 testClassMethod2 testClassMethod3 aaaBbbCcc dddEeeFff
결과는 이렇게 된다.
test_class_method1 test_class_method2 test_class_method3 aaa_bbb_ccc ddd_eee_fff