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

时间:2015-07-06 07:03:59

标签: c# alphabetical-sort

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

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");
    }

1 个答案:

答案 0 :(得分:1)

它确实&#34;按字母顺序排列&#34; (排序)你的第一个字。 当&#34; alphabetizeing&#34;使用Array.Sort(),它按字母顺序排列大写字母,然后按字母顺序排列小写字母。

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

例如,

"Smith"应成为"Shimt"

"Hello"将保持"Hello"

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