Alle gioved25 ottobre 2007, Randy Kramer ha scritto: > Can anybody point me to a way to check if a string represents a valid > integer and then convert it to an integer? > > It is very likely the string will contain leading zeros, and should not > contain any trailing non-numeric characters. > > Per the documentation (pickaxe 2), to_i won't quite do it, it will just > ignore trailing non-numeric characters. > > Thanks! > > Randy Kramer Kernel.Integer can convert a string to a number raising an exception if it has the wrong format. The only problem lies in the fact that it treats a string with leading zeros as an octal number (for example, Integer("000123") gives 83). To avoid this, you can use gsub on the string: Integer("000123".gsub(/^0+/,'')) => 123 I hope this helps