Hi all,
I have a Ruby program that reads in a text file of first names and
surnames and prints them out in alphabetical order. Now I’m trying to
add the option: if a person has a middle name, to print that out too and
if they don’t, to just print out their first name and surname.
I’m having issues when allowing a person to have a middle name or not
though. I think it is a problem with my to_s method and when I create a
new person. I have attached my ruby file, if anyone has any help or
advice on how to start this please let me know.
The text file of names is just like this, with the first entry having no
middle name and the second one having a middle name: John,Doe
Jane,Doe,Amy
Paul S. wrote:
I have attached my ruby file
I don’t think you did
–
Paul S.
http://www.nomadicfun.co.uk
Ah I’m sorry when trying initially it came up with application error, I
didn’t realise it was to be attached again. I saved it as a txt file
this time.
Jane O’Maley wrote:
Ah I’m sorry when trying initially it came up with application error, I
didn’t realise it was to be attached again. I saved it as a txt file
this time.
def initialize fname, lname, mname=nil
@fname = fname
@lname = lname
@mname = mname
end
This makes the last name nil if it’s not defined when you create the
person.
def to_s
easy-to-read solution
temp = “#{@lname}, #{fname}”
if !@mname.nil?
temp += “, #{mname}”
end
return temp
end
def initialize fname, lname, mname=nil
@fname = fname
@lname = lname
@mname = mname
endThis makes the last name nil if it’s not defined when you create the
person.
def to_s
easy-to-read solution
temp = “#{@lname}, #{fname}”
if !@mname.nil?
temp += “, #{mname}”
end
return temp
end
Thank you very much for your help. Having sorted this out I was able to
find and fix some other problems I had with it too and can keep moving
forward with it.