I have a string like ‘1 334.64’ and I need to remove the space so that
it becomes ‘1334.64’. I have I think ruby 1.6 in home computer where
worked gsub!(/\s/, ‘’) but in other computer I have ruby 1.7 and it
doesn’t seem to work.
Joonas Lindholm wrote:
I have a string like ‘1 334.64’ and I need to remove the space so that
it becomes ‘1334.64’. I have I think ruby 1.6 in home computer where
worked gsub!(/\s/, ‘’) but in other computer I have ruby 1.7 and it
doesn’t seem to work.
ruby 1.7 was only a development version, so you should move to 1.8.6 if
possible.
However, “it doesn’t seem to work” is not a useful problem description.
You need to show exactly what you ran, the exact output (copy-paste),
what you expected the output to be, and what platform you are running
under.
The code snippet you have shown looks OK to me.
Brian C. wrote:
ruby 1.7 was only a development version, so you should move to 1.8.6 if
possible.However, “it doesn’t seem to work” is not a useful problem description.
You need to show exactly what you ran, the exact output (copy-paste),
what you expected the output to be, and what platform you are running
under.The code snippet you have shown looks OK to me.
Ups, what I meant is that the 1.8.6 is the version I have home and at
other computer 1.8.7. But if the gsub!(/\s/, ‘’) looks fine I have to do
more testing…
Joonas Lindholm wrote:
Brian C. wrote:
ruby 1.7 was only a development version, so you should move to 1.8.6 if
possible.However, “it doesn’t seem to work” is not a useful problem description.
You need to show exactly what you ran, the exact output (copy-paste),
what you expected the output to be, and what platform you are running
under.The code snippet you have shown looks OK to me.
Ups, what I meant is that the 1.8.6 is the version I have home and at
other computer 1.8.7. But if the gsub!(/\s/, ‘’) looks fine I have to do
more testing…
I get identical results with 1.8.6 and ruby ruby 1.9.1L
str = “1 334.64”
puts str
str.gsub!(/\s/, “”)
puts str
–output:–
1 334.64
1334.64
I have a hard time believing that ruby 1.8.7 would produce different
results–no matter how badly it is screwed up.
Joonas Lindholm wrote:
Ups, what I meant is that the 1.8.6 is the version I have home and at
other computer 1.8.7. But if the gsub!(/\s/, ‘’) looks fine I have to do
more testing…
Yep. Are you running a standalone program, or in irb? In the first case,
paste the program you are running, and its output. In the second case,
paste the irb transcript. e.g.
$ irb --simple-prompt
s = “1 334.64”
=> “1 334.64”s.gsub!(/\s/, ‘’)
=> “1334.64”s
=> “1334.64”
Note that gsub! modifies the string in-place, and returns nil if no
change was made.
7stud – wrote:
Joonas Lindholm wrote:
str = “1 334.64”
puts strstr.gsub!(/\s/, “”)
puts str–output:–
1 334.64
1334.64
The code above works fine for me on HP-UX: ruby 1.8.7 (2008-08-11
patchlevel 72) [ia64-hpux11.23].
a = “ha ha ha ha ha ha ha”
“ha ha ha ha ha ha ha”a.delete(" ")
“hahahahahahaha”a
“ha ha ha ha ha ha ha”a.delete!(" ")
“hahahahahahaha”a
“hahahahahahaha”
At 2009-08-26 12:37PM, “Joonas Lindholm” wrote:
I have a string like ‘1 334.64’ and I need to remove the space so that
it becomes ‘1334.64’. I have I think ruby 1.6 in home computer where
worked gsub!(/\s/, ‘’) but in other computer I have ruby 1.7 and it
doesn’t seem to work.
An option nobody has suggested so far: String#delete
"1 334.64".delete(" ") # ==> "1334.64"
Joonas Lindholm wrote:
The code snippet you have shown looks OK to me.
Ups, what I meant is that the 1.8.6 is the version I have home and at
other computer 1.8.7. But if the gsub!(/\s/, ‘’) looks fine I have to do
more testing…
String#tr works similar with easier interface:
http://www.ruby-doc.org/core/classes/String.html#M000830
2009/8/26 Glenn J. [email protected]:
At 2009-08-26 12:37PM, “Joonas Lindholm” wrote:
I have a string like ‘1 334.64’ and I need to remove the space so that
it becomes ‘1334.64’. I have I think ruby 1.6 in home computer where
worked gsub!(/\s/, ‘’) but in other computer I have ruby 1.7 and it
doesn’t seem to work.An option nobody has suggested so far: String#delete
“1 334.64”.delete(" ") # ==> “1334.64”
Another option that I haven’t seen suggested:
str.gsub!(/\s+/, ‘’)
Could be a bit faster than /\s/ if there are longer sequences of spaces.
Cheers
robert