String Alphabetizer - 不按字母顺序排列第一个单词

String Alphabetizer - Not Alphabetizing first word

这里的新手遇到了一个小问题。 我只是在做一项简单的小任务来提高技能,但我无法解决这个小问题。 本质上,我是通过一种将每个单词分开并按字母顺序排列每个单词的方法来解析一个句子字符串。但是我不明白为什么第一个词从不按字母顺序排列。任何帮助深表感谢。

static string Alphabetize(string word)
    {
        char[] a = word.ToCharArray();

        Array.Sort(a);

        return new string(a);
    }

    static void Scrambler(string sentence)
    {
        string tempStore = "";
        List<string> sentenceStore = new List<string>();
        Regex space = new Regex(@"^\s+$");


        // Store each word in a list
        for (int c = 0; c < sentence.Length; c++)
        {
            if (!space.IsMatch(Convert.ToString(sentence[c])))
            {
                tempStore += Convert.ToString(sentence[c]);
                if (sentence.Length - 1 == c)
                {
                    sentenceStore.Add(tempStore);
                }
            }
            else
            {
                sentenceStore.Add(tempStore);
                tempStore = "";
            }
        }


        foreach (string s in sentenceStore)
        {

            Console.Write(Alphabetize(s));
            Console.WriteLine();
        }
    }

    static void Main(string[] args)
    {
        Scrambler("Hello my name is John Smith");
    }

它会 "alphabetize"(排序)您的第一个单词。 当"alphabetizeing"和Array.Sort()时,先大写字母再小写字母。

所以 "cCbBaA" 例如应该变成 "ABCabc"

例如

"Smith" 应该变成 "Shimt"

"Hello"将保持"Hello"

旁注:您应该考虑使用 String.Split()