Ruby我自己常用的小技巧


     

       最近越來越喜歡用Ruby來寫一些小程式,以前要寫很多行的Code,現在都可以用簡單幾行的Code就可以達成了,而且現在愈學愈多程式語言之後,腦袋瓜能記的東西越來越少了,想一想還是把常用的記下來的好。


以下是我會常常用的小技巧。目前只有一點點,之後有學到新的東西會繼續加 。

官方網站的API文件 : http://www.ruby-doc.org/core-1.9.3/


1. 將字串110轉成十進位6

puts "110".to_i(base=2).to_s(base=10)

$>  6

2. 將字串1110轉成16進位E

puts "1110".to_i(base=2).to_s(base=16)

$>  e

3. 數字15傳成二進位1111

puts 15.to_s(base=2)

$> 1111


4.字串搜尋並取代

puts "ABbCD".gsub(/b/,"B")

$> ABBCD


5. 打開檔案並且一個BYTE一個BYTE讀取,並轉進陣列

data = []
f = File.open(FILE_NAME)
f.each_byte {|ch| data.push(ch)}

6. 迴圈

(0..7).each { |i| print "Num #{i} "}

$> Num 0 Num 1 Num 2 Num 3 Num 4 Num 5 Num 6 Num 7

3.times {  print "H"} or "H"*3

$> HHH

7. 輸出中文字

如果你的檔案是用UTF8的話,請在檔案的最上頭加上
# -*- coding: UTF-8 -*-
如果你是用ANSI的話,請加上 (通常用Window的筆記本會存成這樣的格式,你也是可以改成utf8)
# -*- coding: Big5 -*-

puts "我的最愛"

8. 陣列

data = [1,2,3]
puts data.inspect
$> [1, 2, 3]

data.push("a")
puts data.inspect
$> [1, 2, 3,"a"]

data = Array.new(3,0)
puts data.inspect
$> [0, 0, 0]

arr = [1,2,3]
arr.each_with_index {|a,i| print "No.#{i+1} #{a}\n"}
$>
No.1 1
No.2 2
No.3 3

9. 陣列轉成字串


arr = ["1","2","3","4","5"]
arr.join(",")
$>  "1,2,3,4,5"

arr.join("")
$> "12345"

arr.map { |x| x + "!" }
$> ["1!", "2!", "3!", "4!", "5!"]

arr.sort {|x,y| y <=> x }
$>["5", "4", "3", "2", "1"]

arr=["5", "4", "3", "2", "1"]
arr.sort
$> ["1", "2", "3", "4", "5"]

P.S. 如果你要再做sort的時候把sort過後的資料寫回本身的話就用sort!這個函數。

10. File


FILENAME = "test.txt"
data = "Hello"
File.open(FILENAME, 'w') {|f| f.write("#{data}") }
File Reference : http://snippets.dzone.com/posts/show/5051

11. String Split


S = "a,b,c,d,e"
puts S.split(',').inspect

$>["a", "b", "c", "d", "e"]



張貼留言

這個網誌中的熱門文章

Unions 在C語言的簡單介紹

解釋scope.$apply用來做什麼? -- AngularJS

JavaScript的Timer用法