2010-08-20 27 views
8

Làm cách nào để chuyển đổi "755" thành 0755 trong Ruby? Tôi muốn chuyển quyền cho một phương thức bằng cách sử dụng một chuỗi và sau đó chuyển đổi nó để sử dụng chmod.Chuỗi Ruby thành bát phân?

+0

Nó không rõ ràng những gì bạn thực sự muốn. Bạn có muốn nối thêm 0 vào chuỗi không? Hay cái gì? –

+0

Tôi muốn chuyển đổi một chuỗi thành bát phân, như tiêu đề cho biết. – Christoffer

+0

@Pavel: "755" == 0755 trả về false ... – Christoffer

Trả lời

15

này nên làm điều đó:

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

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

Tuyệt vời, đã làm thử nghiệm này trong irb và có" đúng "-> 0755 ==" 755 ".to_i (8) – Christoffer

+0

Chỉ cần thêm vào câu trả lời của tôi để mọi người hiểu điều này là gì. –

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

Anh ấy hy vọng không phải là một chuỗi. Trong khi "755" là một chuỗi, 0755 không phải là một chuỗi. –

0

Một chút muộn để đảng, nhưng bạn có thể kiểm tra lỗi đầu vào bằng cách thông qua các chuỗi và cơ sở để nhanh chóng một Integer do đó,

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

begin 
    Integer("855",8) 
rescue ArgumentError, TypeError 
    "Bad input" 
end 
Các vấn đề liên quan