Solved

Get range given endpoints

Posted on 2006-11-01
8
220 Views
Last Modified: 2012-05-05
Hi EE:

I would like to get a range of alphabets or numbers (integers, whole numbers etc) given endpoints. Say, I provide a string "a,z", I should be able to get back a string a,b,c,d,e,f,...,x,y,z and likewise for numbers. How would be the easiest way to accomplish this?

thx
0
Comment
Question by:LuckyLucks
  • 4
  • 4
8 Comments
 
LVL 13

Expert Comment

by:joechina
ID: 17852256
have you tried

Convert the input to two ascii number,
Add all chars between those two numbers?

0
 

Author Comment

by:LuckyLucks
ID: 17853588
if you can provide the code for that you will get the cake ;)
0
 
LVL 13

Expert Comment

by:joechina
ID: 17858101
static string getRange(string input)
 {
            StringBuilder sb = new StringBuilder(30);
            char[] range = input.ToCharArray();
            for (char i = range[0]; i <= range[2]; i++)
            {
                sb.Append(i).Append(',');
            }
            return sb.Remove(sb.Length - 1,1).ToString();
 }

Assume the input is in the format of "x,y"  y > x
0
 

Author Comment

by:LuckyLucks
ID: 17867214
I am not sure how this will handle somthing like "0,15". I am expecting the correct answer of "1,14" but I get "1,0". Is there a way to make the last char '15' give 14 and not 0?

thx
0
Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

 
LVL 13

Accepted Solution

by:
joechina earned 500 total points
ID: 17867427
static string getRange(string input)
        {
            StringBuilder sb = new StringBuilder();
            string[] s = input.Split(',');
            int start;
            if (int.TryParse(s[0], out start)) //Number
            {
                int end = int.Parse(s[1]);
                for (int n = start; n <= end; n++)
                {
                    sb.Append(n.ToString()).Append(',');
                }
            }
            else //Char
            {
                for (char i = s[0].ToCharArray()[0]; i <= s[1].ToCharArray()[0]; i++)
                {
                    sb.Append(i).Append(',');
                }
            }
            return sb.Remove(sb.Length - 1, 1).ToString();
        }
0
 

Author Comment

by:LuckyLucks
ID: 17867550
One minor request, could this be modifed as  "0-15" will return "1-14" (no need for iterating a list as 1,2,3,4,....14). Also, can this be restricted so that the lower bound doesnt go lesser than 0?

many thx
0
 

Author Comment

by:LuckyLucks
ID: 17867598
BTW I also get an error saying TryParse doesnt exist for int. Looking that up, it exists for Double
0
 
LVL 13

Expert Comment

by:joechina
ID: 17869131
Are you using .net 1.1?

In this case, you can use Parse and capture exception.

To get 1-14 is simple, add 1 to start and minus 1 from end then create your return string.
You can verify the start to make sure it's greater than 0.
change
 for (int n = start; n <= end; n++)
 {
         sb.Append(n.ToString()).Append(',');
 }
to
return (start + 1).ToString() + "-" + (end - 1).ToString;


For character,

return (s[0].ToCharArray()[0] + 1).ToString() + "-" + (s[1].ToCharArray()[0] + 1).ToString();
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Article by: Ivo
C# And Nullable Types Since 2.0 C# has Nullable(T) Generic Structure. The idea behind is to allow value type objects to have null values just like reference types have. This concerns scenarios where not all data sources have values (like a databa…
We all know that functional code is the leg that any good program stands on when it comes right down to it, however, if your program lacks a good user interface your product may not have the appeal needed to keep your customers happy. This issue can…
Internet Business Fax to Email Made Easy - With eFax Corporate (http://www.enterprise.efax.com), you'll receive a dedicated online fax number, which is used the same way as a typical analog fax number. You'll receive secure faxes in your email, fr…
Many functions in Excel can make decisions. The most simple of these is the IF function: it returns a value depending on whether a condition you describe is true or false. Once you get the hang of using the IF function, you will find it easier to us…

896 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

11 Experts available now in Live!

Get 1:1 Help Now