This is why Ruby is amazing :D
1. converting strings to numbers
"123".to_i => 123
Duh, everyone knows that
but how bout
"123stfu".to_i => 123
or
" 123stfu ".to_i => 123
you can even indicate the base of your conversion
"111".to_i(2) => 7 # treat it as a binary number
"111".to_i(8) => 73 # treat it as an octal
split a string and convert it to an interger
"123 456 789".split.map {|m| m.to_i} => [123, 456, 789]
2. Replacing text
we can implement the lame rot13 encryption scheme in one line :)
class String; def rot13; self.tr("A-Ma-mN-Zn-z", "N-Zn-zA-Ma-m");end;end
"Please hide this line".rot13 => "Cyrnfr uvqr guvf yvar"
3. Counting Characters
s1 = "abcabcabcde"
s1.count("c") => 3
s1.count("abc") => 9
s1.count(s1) => 11
count can handle negation
s1.count("^abc") => 2
s1.count("^a") => 8
and range of chars
s1.count("a-c") => 9
s1.count("^a-z") => 0
4. Reversing a String
Microsoft loves to ask interviewee to reverse the word order of a String during an interview, it takes around 15 - 20 lines to implement the function in Java or C++, but we can do it in one :)
phrase = "This is a joke"
phrase.split.reverse.join(" ") => "joke a is This"
so next time you goto an interview, asks if they'll let you do it in Ruby ;)
5. Removing Duplicate Characters
string = "aaaaaaaaaaaaaaaaaaa".squeeze => "a"
string = "aaaaaaaaaaaaaaaaaaB".squeeze => "aB"
string = "hehe....".squeeze(".") => "hehe."
J
Tuesday, September 23, 2008
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment