returning a string in reverse
-
Hi Guys i would like to know how you can create a simple method to return a string in reverse order. i have the following method public string myMethod (String myString) { . . //code goes in here . return myString } i have been trying to use a array to read the string into and try that but this doesnt seem to work any ideas please??
Cheers :)
Have you considered using Array.Reverse method?
string original = "original";
char[] reverseString = original.ToCharArray();
Array.Reverse(reverseString);
original = string.Empty;
for (int i = 0; i < reverseString.Length; i++)
original += reverseString[i];I will use Google before asking dumb questions
-
Have you considered using Array.Reverse method?
string original = "original";
char[] reverseString = original.ToCharArray();
Array.Reverse(reverseString);
original = string.Empty;
for (int i = 0; i < reverseString.Length; i++)
original += reverseString[i];I will use Google before asking dumb questions
summing up to
new string(Array.Reverse(original.ToCharArray())
or even better a sequence oforiginal.ToCharArray()
,Array.Reverse()
andnew string(char[])
:) -- modified at 15:58 Thursday 22nd November, 2007Luc Pattyn [Forum Guidelines] [My Articles]
this months tips: - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use PRE tags to preserve formatting when showing multi-line code snippets
-
Good work! Post something like this and ask how to make it better, and we will honestly try to help (instead of the crappy roundabout ways we proposed to solve the problem earlier). The way I would implement this problem is as follows...
public string ReverseString(string str) {
StringBuilder result = new StringBuilder();
for (int i = str.Length - 1; i >= 0; --i)
result.Append(str[i]);
return result.ToString();
}Like I said, show that you have put even a little effort into trying to find the answer by yourself, and we will try to give you the help you need to get it right, but don't expect us to give you the answer from scratch. Jeff
Just one adjustment; specify the capacity when you create the StringBuilder: StringBuilder result = new StringBuilder(str.Length); This will allocate a string with the exact right size. This has two advantages: 1. The StringBuilder never has to increase the capacity (which is done by allocating a new string with double the size, and copy the data from the previous string to it). 2. The string returned by the ToString method doesn't have any extra unused characters beyond the actual string. If you don't specify the length, the string may use up to twice as much memory as it needs to.
Experience is the sum of all the mistakes you have done.
-
summing up to
new string(Array.Reverse(original.ToCharArray())
or even better a sequence oforiginal.ToCharArray()
,Array.Reverse()
andnew string(char[])
:) -- modified at 15:58 Thursday 22nd November, 2007Luc Pattyn [Forum Guidelines] [My Articles]
this months tips: - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use PRE tags to preserve formatting when showing multi-line code snippets
-
No, you can't do like that. The Array.Reverse method doesn't return the reversed array, it reverses the array in place.
Experience is the sum of all the mistakes you have done.
You're right of course. So I'd better turn it into a small method... :)
Luc Pattyn [Forum Guidelines] [My Articles]
this months tips: - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use PRE tags to preserve formatting when showing multi-line code snippets
-
Hi Guys i would like to know how you can create a simple method to return a string in reverse order. i have the following method public string myMethod (String myString) { . . //code goes in here . return myString } i have been trying to use a array to read the string into and try that but this doesnt seem to work any ideas please??
Cheers :)
Of course, as a quick and dirty hack you could always use a recursive method. I'm not saying you should, but you could. I've seen this done in so many homework assignments and coursework samples.
Deja View - the feeling that you've seen this post before.
-
Of course, as a quick and dirty hack you could always use a recursive method. I'm not saying you should, but you could. I've seen this done in so many homework assignments and coursework samples.
Deja View - the feeling that you've seen this post before.
The recursive method is pretty neat, actually. Who can resist a one-liner? ;) Not very efficient, though. :)
public string Reverse(string value) { return value.Length > 1 ? Reverse(value.Substring(1)) + value.Substring(0, 1) : value; }
Experience is the sum of all the mistakes you have done.
-
Yep, just like a similar reverse problem[^] it can be solved with a single line of code, much shorter than each of the posts/replies in this thread... :)
Luc Pattyn [Forum Guidelines] [My Articles]
this months tips: - before you ask a question here, search CodeProject, then Google - the quality and detail of your question reflects on the effectiveness of the help you are likely to get - use PRE tags to preserve formatting when showing multi-line code snippets
What's a line of code?
-
The recursive method is pretty neat, actually. Who can resist a one-liner? ;) Not very efficient, though. :)
public string Reverse(string value) { return value.Length > 1 ? Reverse(value.Substring(1)) + value.Substring(0, 1) : value; }
Experience is the sum of all the mistakes you have done.
There you go then. The last step is to turn this into a delegate and you're laughing.
Deja View - the feeling that you've seen this post before.
-
There you go then. The last step is to turn this into a delegate and you're laughing.
Deja View - the feeling that you've seen this post before.
Well, delegates can be used in many ways...
public string Reverse(string value) {
string result = string.Empty;
new List(value.ToCharArray()).ForEach(delegate(char c) { result = c.ToString() + result; });
return result;
};)
Experience is the sum of all the mistakes you have done.