From: Wilson Bilkovich Date: 2006-11-18T01:14:29+09:00 Subject: Re: Nuby question - printing substring as non-ASCII On 11/17/06, Thomas Luedeke wrote: > Thomas Luedeke wrote: > > I'm reading in a string of numbers, as follows: > > > > " 1 45.3456 " > > > > How do I write out the first non-whitespace element as a number? Ruby > > wants to express as it in ASCII, and the .to_i method doesn't seem to > > work on a substring. > > > > Thanks in advance. > > > > TPL > > > Thanks. Dumb question, but I'm kinda deep in the throes of the "suck" > stage of learning Ruby. The following also seems to work (at least for > the purposes of reading in and writing formatted output): > > irb(main):001:0> string=" 1 45.3456 " > => " 1 45.3456 " > > irb(main):003:0> string.strip > => "1 45.3456" > > irb(main):004:0> string.split[1] > => "45.3456" > > irb(main):005:0> string.split[0] > => "1" > Here is one way: irb(main):001:0> string = " 1 45.3456 " => " 1 45.3456 " irb(main):002:0> substrings = string.scan /[^\s]+/ => ["1", "45.3456"] irb(main):003:0> substrings.first.to_i => 1 The second line of code is saying: Scan the string, and return an Array of strings that were made up of one or more non-whitespace characters. substrings.first is the same as substrings[0]