Felipe Pieretti U. wrote in post #1046904:
Hello, what I want to do, the user gonna insert a string with right
combinations.
So, the user gonna put, the email[comma]name[semincolon]
This way, I need to split the semicolon, to have the array of strings,
after I need to split the comma, to have the name in a index, and the
email in another.
Okay, I thought my earlier explanation would be sufficient to help you
achieve your goal, but I’ll try to explain further:
You are starting with this:
“[email protected],My Name”; “[email protected],My Name”
I can’t guess what you want in your final result. There are multiple
ways to split and store this. So I’ll explain what I would do in this
case, assuming I want to keep all the information in the original
string:
Start by splitting the string at the semicolons:
arr1 = params[ :email ][ :email ].split( “;” )
Result:
[ “[email protected],My Name”, “[email protected],My Name” ]
Declare an array to store the final data
emails = []
Enumerate the array we split
arr1.each do |str|
For each string in arr1 split at the comma
arr2 = str.split(",")
Put the address and name in a hash (keyed by email address in this
case)
h[arr2[0]] = arr2[1]
Append the hash to the final array
emails << h
end
Final result:
[ { “[email protected]”: “My Name” }, { “[email protected]”, “My Name”
} ]
There might be some shortcut to the above procedure, but I wanted to
show all the individual steps to be clear what’s happening.
As I said before, this is only one possible way to store the results
keeping all the original data. You’ll have to decide what is best for
your particular case.