Home
Map
Alphabetize StringImplement a string alphabetize method to sort the letters in strings.
C#
Alphabetize string. An individual string can be alphabetized. This rearranges the letters so they are sorted A to Z. These strings with sorted letters can be used as lookup keys.
Special logic. We can alphabetize characters in a string, but we do not always need to. Consider the case of the string "abc": it does not need to be alphabetized again.
Example method. Here we see a method that alphabetizes strings in the C# programming language. The method receives a string and returns a sorted copy of that string.
Sort
Note Please recall that strings are immutable. This means we cannot sort the letters in-place.
Detail The method converts the string to a char array using ToCharArray. It uses the static Array.Sort method.
And The final line in the method creates a new string from the char array it modified, and returns it.
Char Array
Array.Sort
Detail With char arrays, we can change a character without copying any data. This is not possible to do with a string.
ToCharArray
using System; class Program { static void Main() { Console.WriteLine(Alphabetize("bird")); Console.WriteLine(Alphabetize("spot")); Console.WriteLine(Alphabetize("cat")); } /// <summary> /// Alphabetize the characters in the string. /// </summary> public static string Alphabetize(string s) { // Convert to char array. char[] a = s.ToCharArray(); // Sort letters. Array.Sort(a); // Return modified string. return new string(a); } }
bdir opst act
Already alphabetical. Some strings are already in alphabetical order. We can avoid sorting these strings. Here we see a method that tests for alphabetical order—it can improve performance.
Warning This method compares the numeric values of chars, so it won't work right on uppercase letters.
Char
Detail This method contains a foreach statement that loops through each character in the string.
Loop Over Chars
And If it finds a character that is lower in its ordinal value than the previous character, it returns false.
Also It returns early when it finds an incorrect (non-alphabetized) character. In this situation, no further processing is needed.
using System; class Program { static void Main() { Console.WriteLine(IsAlpha("abc")); Console.WriteLine(IsAlpha("bird")); } /// <summary> /// Alphabetize string, checking to see if it is already alphabetized. /// </summary> public static string AlphabetizeCheck(string s) { if (IsAlpha(s)) { return s; } else { // TODO: Sort and return the new string. return ""; } } /// <summary> /// See if letters in string are in numeric ascending order. /// </summary> public static bool IsAlpha(string s) { char prev = char.MinValue; foreach (char c in s) { if (c < prev) { return false; } prev = c; } return true; } }
True False
A summary. We saw approaches for alphabetizing strings. It is typically a bad idea to use nested for-loops—that is often a slower solution.
A final note. This code may not work on mixed-case strings. We can remedy this by calling ToLower in Alphabetize—this is not always be needed.
ToLower
C#VB.NETPythonGolangJavaSwiftRust
Dot Net Perls is a collection of tested code examples. Pages are continually updated to stay current, with code correctness a top priority.
Sam Allen is passionate about computer languages. In the past, his work has been recommended by Apple and Microsoft and he has studied computers at a selective university in the United States.
No updates found for this page.
Home
Changes
© 2007-2023 Sam Allen.