Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
626 views
in Technique[技术] by (71.8m points)

ruby - How do I avoid trailing empty items being removed when splitting strings?

I am doing:

"b::::c:::".split(':')

Result:

["b", "", "", "", "c", "", ""] # expect
["b", "", "", "", "c"] # actual

What is the problem here? how can i get what i expected.

See Question&Answers more detail:os

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

There's a limit parameter to .split(pattern=$;, [limit]). If limit is omitted, trailing null fields are suppressed. You need to provide a negative limit

"b::::c:::".split(':', -1) 

but bear in mind that this will return three "" values at the end of the array.

result: ["b", "", "", "", "c", "", "", ""] 

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to OStack Knowledge Sharing Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...