简体   繁体   中英

How to split string into only two parts with a given character in Ruby?

Our application is mining names from people using Twitter to login.

Twitter is providing full names in a single string.

Examples

1. "Froederick Frankenstien"
2. "Ludwig Van Beethoven"
3. "Anne Frank"

I'd like to split the string into only two vars ( first and last ) based on the first " " (space) found.

Example    First Name    Last Name 
1          Froederick    Frankenstein
2          Ludwig        Van Beethoven
3          Anne          Frank

I'm familiar with String#split but I'm not sure how to only split once. The most Ruby-Way™ (elegant) answer will be accepted.

String#split takes a second argument, the limit.

str.split(' ', 2)

should do the trick.

"Ludwig Van Beethoven".split(' ', 2)

The second parameter limits the number you want to split it into.

You can also do:

"Ludwig Van Beethoven".partition(" ")

The second argument of .split() specifies how many splits to do:

'one two three four five'.split(' ', 2)

And the output:

>> ruby -e "print 'one two three four five'.split(' ', 2)"
>> ["one", "two three four five"]

Alternative:

    first= s.match(" ").pre_match
    rest = s.match(" ").post_match

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM