neon_prannock Posted July 10, 2006 at 10:00 AM Report #37297 Posted July 10, 2006 at 10:00 AM Vou aproveitar para postar aqui um função que criei, depois de um desafio no #p@p A ideia era criar uma função que processa-se um número inteiro, passado numa cadeia de caracteres, sobre a regra: /espaço* [sinal] digitos* espaços*/ def numero(char) valor = char-"0"[0] valor end def p_int(i_string) s_end = i_string.length-1 n = 0 0.upto(s_end) do |p| n = n + (numero(i_string[p]) * (10 ** (s_end - p))) end n end def parse_integer cadeia s_start = 0 s_end = cadeia.length r_start = 0 r_start = cadeia =~ /\d/ if r_start != 0 sinal = cadeia[r_start-1,1] if cadeia[r_start-1,1] != /\s/ end r_final = cadeia[r_start,s_end] =~ /\s/ numero = p_int(cadeia[r_start,r_final]) numero *= -1 if sinal == "-" numero end Sei que existe uma função '.to_i' para simplificar o trabalho, mas essa não era a ideia. 🙂 http://sergiosantos.info http://ideias3.com http://takeoff.ideias3.com
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now