split a string at tab positions

S

suresh

Hi

I am a newbie to ruby and when i tried to split a string at tab
positions, it didnt work. Could you please tell me where I am going
wrong? Code is pasted.

#!/usr/bin/ruby1.9
s = "a b"
ss = s.split('\t')
puts ss[0]

It just prints the entire line without splitting...

suresh
 
B

botp

#!/usr/bin/ruby1.9
s = "a b"
ss = s.split('\t')
puts ss[0]
It just prints the entire line without splitting...

probably your editor is converting the tab to spaces.

try eg,

s="a\tb"
#=> "a\tb"
ss=s.split "\t"
#=> ["a", "b"]

kind regards -botp
 
O

Oscar Del Ben

[Note: parts of this message were removed to make it a legal post.]

first, you should use double quote when you want to escape a character.
=> ["a", "b"]



2008/5/30 said:
Hi

I am a newbie to ruby and when i tried to split a string at tab
positions, it didnt work. Could you please tell me where I am going
wrong? Code is pasted.

#!/usr/bin/ruby1.9
s = "a b"
ss = s.split('\t')
puts ss[0]

It just prints the entire line without splitting...


suresh
 
S

suresh

[Note: parts of this message were removed to make it a legal post.]

first, you should use double quote when you want to escape a character.

=> ["a", "b"]

2008/5/30, suresh <[email protected]>:


I am a newbie to ruby and when i tried to split a string at tab
positions, it didnt work. Could you please tell me where I am going
wrong? Code is pasted.
#!/usr/bin/ruby1.9
s = "a b"
ss = s.split('\t')
puts ss[0]
It just prints the entire line without splitting...

Thank you both. It was the double quote issue...when i gave split "\t"
it came correctly....difficulties of a C++ programmer !!!
 
M

Mohit Sindhwani

suresh said:
Hi

I am a newbie to ruby and when i tried to split a string at tab
positions, it didnt work. Could you please tell me where I am going
wrong? Code is pasted.

#!/usr/bin/ruby1.9
s = "a b"
ss = s.split('\t')
puts ss[0]

It just prints the entire line without splitting...

suresh

The problem is the '\t' - anything inside single quotes is not touched
by Ruby. It needs to be "\t" (double quotes) for it to be interpreted
as a tab character by Ruby.

In my mind, this is the #1 problem that C programmers have in Ruby - it
just seems natural to split at a character \t and C programmers (incl
me) write it as '\t'.

Hope this helps.

Cheers,
Mohit.
6/3/2008 | 12:24 AM.
 
M

Mohit Sindhwani

Stefan said:
Hi,


Regexes take the form /.../ (see
http://www.ruby-doc.org/core/classes/Regexp.html)

"a b c".split(/\t/) # tabs between the letters!

does what you want.


So long ... Stefan
I think his piece of code also works - in my mind, the problem is the
single quotes surrounding the \t. I've just got done with processing
lots of delimited data and went through the same frustration. ',' would
work but '\t' wouldn't! :)

Cheers,
Mohit.
6/3/2008 | 12:26 AM.
 

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
474,202
Messages
2,571,057
Members
47,667
Latest member
DaniloB294

Latest Threads

Top