Ruby: überprüft, ob eine Zeichenkette in eine Ganzzahl konvertiert werden kann [duplizieren]

8
%Vor%

Die erste Zeichenfolge ist eine Zahl, und ich kann einfach to_i sagen, um eine ganze Zahl zu erhalten.
Die zweite Zeichenfolge ist auch eine Zahl, aber ich kann to_i nicht direkt aufrufen, um die gewünschte Nummer zu erhalten.

Wie überprüfe ich, ob ich mit to_i erfolgreich konvertieren kann oder nicht?

    
MxyL 14.05.2012, 05:12
quelle

1 Antwort

20

Es gibt eine Integer -Methode, die im Gegensatz zu to_i eine Ausnahme auslöst, wenn sie nicht konvertieren kann:

%Vor%

Ich denke, Sie könnten das mit einer Inline-Rettung verwenden:

%Vor%

Wenn Ihre Zeichenfolge konvertiert werden kann, erhalten Sie die Ganzzahl, andernfalls nil (oder was auch immer Sie hinter die rescue setzen möchten).

Während eine Exception ausgelöst wird, kann es zu einem Overkill kommen, die Methode Integer ist die umfassendste, die ich in Ruby kenne (zB "09" wird nicht konvertiert, weil die führende Null oktal und 9 eine ungültige Ziffer ist) ). Es wird ein Albtraum sein, all diese Fälle mit regulären Ausdrücken zu bedecken.

    
Michael Kohl 14.05.2012, 07:33
quelle

Tags und Links