新手在这里遇到了一个小问题。 我只是做一个简单的小任务来处理技能,但我不能解决这个小问题。 本质上,我通过一个方法解析一个句子字符串,该方法将每个单词分开并按字母顺序排列每个单词。但是,我无法解释为什么第一个单词从不按字母顺序排列。任何帮助深表感谢。
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");
}
答案 0 :(得分:1)
它确实&#34;按字母顺序排列&#34; (排序)你的第一个字。
当&#34; alphabetizeing&#34;使用Array.Sort()
,它按字母顺序排列大写字母,然后按字母顺序排列小写字母。
所以"cCbBaA"
例如应该成为"ABCabc"
或"Smith"
应成为"Shimt"
和"Hello"
将保持"Hello"
旁注:您应该考虑使用String.Split()