So I want to be able to take a string with underscores in it ('_') and
replace those with spaces...can somebody please tell me why this isn't
working:
if cal_name.include? '_'
cal_name.sub!('_', ' ')
end
I can't see why this isn't doing the trick...but maybe I'm doing
something wrong. If anyone could give me any idea of what's wrong..or
even a different approach, that would be great!
Umm, what exactly makes you think it isn't working?
It is working, but for sub, not gsub.
sub replaces the first, gsub replaces all
Also, you don't need to do this in an if statement. If the underscore
isn't present, sub and gsub won't complain.
#Probably what you want.
cal_name.gsub!('_',' ')
Good luck,
--Kyle
···
On Tue, Jun 10, 2008 at 1:19 PM, Amanda .. <sugar_babee_97@hotmail.com> wrote:
So I want to be able to take a string with underscores in it ('_') and
replace those with spaces...can somebody please tell me why this isn't
working:
if cal_name.include? '_'
cal_name.sub!('_', ' ')
end
I can't see why this isn't doing the trick...but maybe I'm doing
something wrong. If anyone could give me any idea of what's wrong..or
even a different approach, that would be great!
Well, that code should work to replace the first underscore in a String. If you want all of them, use gsub!() instead. You can also drop the if statement, as it has no effect here.
I would use tr() for this, if you want to replace them all:
cal_name.tr("_", " ")
James Edward Gray II
···
On Jun 10, 2008, at 1:19 PM, Amanda .. wrote:
So I want to be able to take a string with underscores in it ('_') and
replace those with spaces...can somebody please tell me why this isn't
working:
if cal_name.include? '_'
cal_name.sub!('_', ' ')
end
I can't see why this isn't doing the trick...but maybe I'm doing
something wrong. If anyone could give me any idea of what's wrong..or
even a different approach, that would be great!
Or, in your case use gsub! - but without the check (unnecessary overhead).
Kind regards
robert
···
On 10.06.2008 20:19, Amanda .. wrote:
So I want to be able to take a string with underscores in it ('_') and
replace those with spaces...can somebody please tell me why this isn't
working:
if cal_name.include? '_'
cal_name.sub!('_', ' ')
end
I can't see why this isn't doing the trick...but maybe I'm doing
something wrong. If anyone could give me any idea of what's wrong..or
even a different approach, that would be great!
Coming recently from Perl, this looks very familiar to me. In Perl
syntax:
$cal_name =~ tr/_/ /;
In Ruby you'll need cal_name.tr!("_", " ") if you want to make the
substitution permanent. (I keep getting caught by this!) Or
cal_name.tr_s!("_", " ") if you want to squeeze multiple space
characters down to a single space too.