2010-08-20 35 views
8

如何在Ruby中將「755」轉換爲0755?我想將權限傳遞給使用字符串的方法,然後將其轉換爲chmod使用。紅寶石串到八進制?

+0

目前還不清楚你真正想要什麼。你想要將零附加到一個字符串嗎?或者是什麼? – 2010-08-20 06:42:17

+0

我想將字符串轉換爲八進制,就像標題所說的那樣。 – Christoffer 2010-08-20 06:44:11

+0

@Pavel:「755」== 0755返回false ... – Christoffer 2010-08-20 06:51:34

回答

15

這應做到:

"755".to_i(8) 
# => 493 

"755".to_i(8) == 0755 
# => true 
+0

非常棒,在irb中做了這個測試,得到了「true」 - > 0755 ==「755」.to_i(8) – Christoffer 2010-08-20 06:43:34

+0

剛剛在我的回答中加入了這樣的話,人們明白這是什麼意思。 – 2010-08-20 06:44:49

-4
def append_zero_to_string(string) 
    0.to_s + string 
end 
+0

他預計不會有字符串。而「755」是一個字符串,0755不是一個字符串。 – 2013-04-09 20:33:26

0

有點遲到了,但你可以通過串和底座從而實例化一個整數檢查輸入錯誤,

Integer("755",8)=493 
Integer("855",8) 
ArgumentError: invalid value for Integer(): "855" 

begin 
    Integer("855",8) 
rescue ArgumentError, TypeError 
    "Bad input" 
end