我已經構建了一個字符串生成器來將空格添加到文本中,如果它是大寫。輸入的句子看起來像這樣:「ThisIsASentence。」由於它以大寫字母開頭,因此字符串生成器會將句子修改爲如下所示:「This Is A Sentence。」字符串方法切出字符串部分
我的問題是,如果我有一個像「thisIsASentence。」這樣的句子。字符串生成器將像正常一樣分離句子:「這是一個句子」。
在第一個字符的前面還有一個空格。
當句子通過這條線運行:
result = result.Substring(1, 1).ToUpper() + result.Substring(2).ToLower();
如果第一個字母進入是小寫的,它被切斷,第二個字母大寫變。
該行是爲了保持第一個字母輸入大寫,並設置其餘的小寫字母。
在運行該行之前添加修剪語句會在輸出中不改變任何內容。
這裏是我的整個代碼現在:
private void btnChange_Click(object sender, EventArgs e)
{
// New string named sentence, assigning the text input to sentence.
string sentence;
sentence = txtSentence.Text;
// String builder to let us modify string
StringBuilder sentenceSB = new StringBuilder();
/*
* For every character in the string "sentence" if the character is uppercase,
* add a space before the letter,
* if it isn't, add nothing.
*/
foreach (char c in sentence)
{
if (char.IsUpper(c))
{
sentenceSB.Append(" ");
}
sentenceSB.Append(c);
}
// Store the edited sentence into the "result" string
string result = sentenceSB.ToString();
// Starting at the 2nd spot and going 1, makes the first character capitalized
// Starting at position 3 and going to end change them to lower case.
result = result.Substring(1, 1).ToUpper() + result.Substring(2).ToLower();
// set the label text to equal "result" and set it visible.
lblChanged.Text = result.ToString();
lblChanged.Visible = true;
現在我的問題是,如果第一個字母是輸入大寫。它會將其更改爲小寫。難道是使用toUpper();在一個已經大寫的字母改變它降低? – NWcis
我測試了這個,它工作正常。確保你正在修剪結果,結果= result.Trim();或初始化結果:string result = sentenceSB.ToString()。Trim(); – Bryan
哦,我的,我怎麼沒有意識到這一點。我修剪了錯誤的字符串... grr .. – NWcis