C# 外部方法中的for循环无效
C#以以下格式编写任意单词的程序: 随便给一个词,例如:学生人数 答:学生人数C# 外部方法中的for循环无效,c#,for-loop,methods,C#,For Loop,Methods,C#以以下格式编写任意单词的程序: 随便给一个词,例如:学生人数 答:学生人数 class Program { static void Main(string[] args) { Console.WriteLine("Enter few words: "); var sentence = Console.ReadLine(); var Answer = Method(sentence); Console.WriteL
class Program
{
static void Main(string[] args)
{
Console.WriteLine("Enter few words: ");
var sentence = Console.ReadLine();
var Answer = Method(sentence);
Console.WriteLine(Answer);
Console.WriteLine(" ");
}
public static string Method(string sentence)
{
var words = sentence.Split(' ');
string answer = null;
for (int i = 0; i <= words.Count() - 1; i++)
{
var First = words[i].Substring(0, 1);
var Rest = words[i].Substring(1);
var Cap = First.ToUpper();
var low = Rest.ToLower();
answer = Cap + low;
return answer;
}
return null;
}
类程序
{
静态void Main(字符串[]参数)
{
Console.WriteLine(“输入几个单词:”);
var语句=Console.ReadLine();
var答案=方法(句子);
控制台。写线(应答);
控制台。写线(“”);
}
公共静态字符串方法(字符串语句)
{
变量词=句子分割(“”);
字符串应答=null;
对于(int i=0;i这一行:
return answer;
在第一次迭代后结束循环。它从方法返回。
您需要做的是有第二个变量,您可以使用它在转换后的每次迭代中添加answer
// before the loop:
string wholeWord = "";
// last line of loop
wholeWord += answer;
最后,您当然应该返回wholeWord
尝试以下操作
public static string Method(string sentence)
{
var words = sentence.Split(' ');
string answer = "";
for (int i = 0; i <= words.Count() - 1; i++)
{
var First = words[i].Substring(0, 1);
var Rest = words[i].Substring(1);
var Cap = First.ToUpper();
var low = Rest.ToLower();
answer += Cap + low;
}
return answer;
}
公共静态字符串方法(字符串语句)
{
变量词=句子分割(“”);
字符串答案=”;
对于(int i=0;i,您可以简单地用此代码替换这些行
var sentence = Console.ReadLine();
string input = sentence;
string[] sentenses = input.Split(' ');
StringBuilder s = new StringBuilder();
foreach(var sent in sentenses) {
s.Append(System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(sent));
}
Console.WriteLine(s.ToString());
Console.WriteLine(" ");
在调试器中逐步检查您的代码,检查每个变量,您将看到您做错了什么。调试将比在此处编写问题快得多;)您能简单地告诉我应该如何做吗?谢谢。