Read individual words from input?

K

Kerio Star

Hello folks,

I'm a semi-newbie C++ programmer and a total newbie Ruby programmer, so
please bear with my incompetence.

In C++, as I'm sure most of you know, it's possible to read individual
"words" into string variables by using the stream extraction operator.
This operator automatically excludes any and all whitespace from the
value it places into the string variable--that is, in the process of
reading the next piece of input, it skips any leading whitespace, and
stops upon encountering any following whitespace.

I'm struggling to find an equivalent to this in Ruby. I'd like to open a
text file and create from it an array each of whose values is an
individual "word," sans whitespace.

For example, given a string along the lines of " \n\tHello \n \t My
\t\t\t\nName \t\n Is \n John", how can I cleanly extract the strings
"Hello", "My", "Name", "Is", and "John"?

Again, sorry for asking such a stupid question--just trying to get a
handle on what seems to be an awesome language.

Thanks for any help,
Keriostar
 
D

dblack

Hi --

Hi. Without any file checking for existing files etc. You can use the read
method of file. By calling this in a block it also closes the file for you.

words = File.open( "404.html" ){ |f| f.read.split }

You can also use the class method:

words = File.read("words.txt").split


David

--
* Books:
RAILS ROUTING (new! http://www.awprofessional.com/title/0321509242)
RUBY FOR RAILS (http://www.manning.com/black)
* Ruby/Rails training
& consulting: Ruby Power and Light, LLC (http://www.rubypal.com)
 
S

Stefan Rusterholz

Kerio said:
Hello folks,

I'm a semi-newbie C++ programmer and a total newbie Ruby programmer, so
please bear with my incompetence.

In C++, as I'm sure most of you know, it's possible to read individual
"words" into string variables by using the stream extraction operator.
This operator automatically excludes any and all whitespace from the
value it places into the string variable--that is, in the process of
reading the next piece of input, it skips any leading whitespace, and
stops upon encountering any following whitespace.

I'm struggling to find an equivalent to this in Ruby. I'd like to open a
text file and create from it an array each of whose values is an
individual "word," sans whitespace.

For example, given a string along the lines of " \n\tHello \n \t My
\t\t\t\nName \t\n Is \n John", how can I cleanly extract the strings
"Hello", "My", "Name", "Is", and "John"?

Again, sorry for asking such a stupid question--just trying to get a
handle on what seems to be an awesome language.

Thanks for any help,
Keriostar

Alternative if you want to avoid having interpunctuation and other stuff
in your words:
words = string.scan(/\w+/)

Regards
Stefan
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,744
Messages
2,569,482
Members
44,901
Latest member
Noble71S45

Latest Threads

Top