2010-08-20 14 views
8

Wie kann ich "755" in Ruby in 0755 konvertieren? Ich möchte Berechtigungen an eine Methode übergeben, die eine Zeichenfolge verwendet, und sie dann für die Verwendung von chmod konvertieren.Ruby String zu oktal?

+0

Es ist nicht klar, was Sie eigentlich wollen. Möchten Sie eine Null an eine Zeichenfolge anhängen? Oder was? –

+0

Ich möchte eine Zeichenfolge in eine Oktal konvertieren, wie der Titel sagt. – Christoffer

+0

@Pavel: "755" == 0755 gibt false zurück ... – Christoffer

Antwort

15

Dies sollte es tun:

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

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

Fantastisch, habe diesen Test in irb und habe" wahr "-> 0755 ==" 755 ".to_i (8) – Christoffer

+0

Ich habe das nur zu meiner Antwort hinzugefügt, damit die Leute verstehen, wofür das ist. –

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

Er erwartet keine Zeichenfolge. Während "755" eine Zeichenfolge ist, ist 0755 keine Zeichenfolge. –

0

Ein bisschen spät zur Party, aber Sie können, indem Sie die Zeichenfolge und die Basis für Eingabefehler überprüfen somit einen Integer-instanziiert,

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

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