# Range

**URL:** <https://www.ruby-forum.com/t/range/175582>\
**Category:** Ruby\
**Created:** [September 16, 2009, 12:06am UTC](https://www.ruby-forum.com/t/range/175582 "2009-09-16T00:06:18Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![rereis](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/9de0a6/32.png) [@rereis](https://www.ruby-forum.com/u/rereis)\
**Post date:** [September 16, 2009, 12:06am UTC](https://www.ruby-forum.com/t/range/175582/1 "2009-09-16T00:06:18Z")

</div>

how can I convert a string ‘20-30’ to a instance range object 20…30

thanks

---

<div class="post-metadata">

**Author:** ![rereis](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/9de0a6/32.png) [@rereis](https://www.ruby-forum.com/u/rereis)\
**Post date:** [September 16, 2009, 12:12am UTC](https://www.ruby-forum.com/t/range/175582/2 "2009-09-16T00:12:24Z")

</div>

Am Mittwoch 16 September 2009 00:06:21 schrieb Re BR:

> how can I convert a string ‘20-30’ to a instance range object 20…30

first, last = ‘20-30’.split("-")  
first.to\_i … last.to\_i  
#=\> 20…30

HTH,  
Sebastian

---

<div class="post-metadata">

**Author:** ![rereis](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/9de0a6/32.png) [@rereis](https://www.ruby-forum.com/u/rereis)\
**Post date:** [September 16, 2009, 12:23am UTC](https://www.ruby-forum.com/t/range/175582/3 "2009-09-16T00:23:31Z")

</div>

On Sep 15, 2009, at 6:11 PM, Sebastian H. wrote:

> Am Mittwoch 16 September 2009 00:06:21 schrieb Re BR:
> 
> > how can I convert a string ‘20-30’ to a instance range object 20…30
> 
> first, last = ‘20-30’.split(“-”)  
> first.to\_i … last.to\_i  
> #=\> 20…30
> 
> HTH,  
> Sebastian

Or:

string=“20-30”  
Range.new(\*(string.split(‘-’,2).map{|s|s.to\_i}))

in English, split the string into at most two parts at the ‘-’, map  
those parts as integers, and use them to build a new Range.

-Rob

Rob B. [http://agileconsultingllc.com](http://agileconsultingllc.com)  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![rereis](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/9de0a6/32.png) [@rereis](https://www.ruby-forum.com/u/rereis)\
**Post date:** [September 16, 2009, 2:51am UTC](https://www.ruby-forum.com/t/range/175582/4 "2009-09-16T02:51:02Z")

</div>

At 2009-09-15 06:23PM, “Rob B.” wrote:

> Or:
> 
> string=“20-30”  
> Range.new(\*(string.split(’-’,2).map{|s|s.to\_i}))

Or:  
range = string.match(/(\d+)-(\d+)/) and ($1.to\_i … $2.to\_i)

---

<div class="post-metadata">

**Author:** ![rereis](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/9de0a6/32.png) [@rereis](https://www.ruby-forum.com/u/rereis)\
**Post date:** [September 16, 2009, 3:36am UTC](https://www.ruby-forum.com/t/range/175582/5 "2009-09-16T03:36:05Z")

</div>

Hi –

On Wed, 16 Sep 2009, Glenn J. wrote:

> > > Sebastian
> > 
> > Or:
> > 
> > string=“20-30”  
> > Range.new(\*(string.split(’-’,2).map{|s|s.to\_i}))
> 
> Or:  
> range = string.match(/(\d+)-(\d+)/) and ($1.to\_i … $2.to\_i)

Or:

range = Range.new(\*str.scanf("%d-%d"))

David

---

<div class="post-metadata">

**Author:** ![rereis](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/9de0a6/32.png) [@rereis](https://www.ruby-forum.com/u/rereis)\
**Post date:** [September 16, 2009, 11:02am UTC](https://www.ruby-forum.com/t/range/175582/6 "2009-09-16T11:02:07Z")

</div>

eval string.sub(/-/, ‘…’)

🙂
