【发布时间】:2017-05-11 06:34:21
【问题描述】:
有人可以告诉我我做错了什么吗?似乎无法获得预期的输出,即忽略空格,只忽略大写/小写 a-z 字符,而不管空格字符的数量是多少
我的代码:
var sentence = "dancing sentence";
var charSentence = sentence.ToCharArray();
var rs = "";
for (var i = 0; i < charSentence.Length; i++)
{
if (charSentence[i] != ' ')
{
if (i % 2 == 0 && charSentence[i] != ' ')
{
rs += charSentence[i].ToString().ToUpper();
}
else if (i % 2 == 1 && charSentence[i] != ' ')
{
rs += sentence[i].ToString().ToLower();
}
}
else
{
rs += " ";
}
}
Console.WriteLine(rs);
预期输出:DaNcInG sEnTeNcE
实际输出:DaNcInG SeNtEnCe
【问题讨论】:
-
查看索引时,您的空间仍然被计算在内。
-
在执行 % 2 之前为空格添加一个计数器并减少它的形式索引。
-
你能用flag代替for循环吗?或者只是循环可接受的@MykolaKovalchuk
-
用空格分割句子,格式化每个单词并将它们连接起来。
-
C# 有很多用于字符串操作的方法。您不需要遍历并执行 mod 运算符。使用 IsUpper() 或 IsLower() 等方法获得更优雅的解决方案。 This 帖子将帮助您完善您的示例。
标签: c#