我正在进行一项任务,要求我让用户输入一个没有空格的字符串,并通过以大写字母开头来识别每个单词,因此“IAmName”将转换为“我是名字”。我想我有那个部分,我的问题是最后一步,它在标签中显示新的字符串,这是我的代码到目前为止:
private string ConvertText()
{
string str = inputTextBox.Text;
if (str.Contains(" "))
{
MessageBox.Show("No spaces allowed");
}
string newstring = outputLabel.Text;
for (int i = 0; i < str.Length; i++)
{
if (char.IsUpper(str[i]))
newstring += " ";
newstring += str[i].ToString();
}
return newstring;
}
非常感谢任何帮助。
答案 0 :(得分:4)
反过来说:
outputLabel.Text = ConvertText(); // Or any other label that should display it
我不知道为什么你的代码中有这个(string newstring = outputLabel.Text;
)。你没有使用它,你只是覆盖它。
您可能还希望使用StringBuilder
在循环中连接,效率更高。
此代码可能应添加return;
if (str.Contains(" "))
{
MessageBox.Show("No spaces allowed");
return; // Return so it stops executing this method
}
答案 1 :(得分:0)
我编辑了一点样品 我认为这是正确的。
public static class MyClass
{
public static string ConvertText(string inputText)
{
var newstring = "";
for (var i = 0; i < inputText.Length; i++)
{
if (char.IsUpper(inputText[i]))
newstring += " ";
newstring += inputText[i].ToString(CultureInfo.InvariantCulture);
}
return newstring;
}
}
string output = MyClass.ConvertText("MyNameIsBlaBla");
Console.WriteLine(output);
“我的名字是Bla Bla”