gpt4 book ai didi

C#修复语句

转载 作者:太空宇宙 更新时间:2023-11-03 22:01:42 25 4
gpt4 key购买 nike

我需要一个句子,所有句子都在一行中,没有空格,每个新单词都有一个大写字母 EX。 “StopAndSmellTheRoses”然后将其转换为“停止并闻到玫瑰”这是我的功能,但我一直在插入方法中收到参数超出范围的错误。提前感谢您的帮助。

private void FixSentence()
{
// String to hold our sentence in trim at same time
string sentence = txtSentence.Text.Trim();

// loop through the string
for (int i = 0; i < sentence.Length; i++)
{
if (char.IsUpper(sentence, i) & sentence[i] != 0)
{
// Change to lowercase
char.ToLower(sentence[i]);

// Insert space behind the character
// This is where I get my error
sentence = sentence.Insert(i-1, " ");
}
}

// Show our Fixed Sentence
lblFixed.Text = "";
lblFixed.Text = "Fixed: " + sentence;
}

最佳答案

以这种方式构建 String 的最佳方法是使用 StringBuilder 实例。

var sentence = txtSentence.Text.Trim();
var builder = new StringBuilder();
foreach (var cur in sentence) {
if (Char.IsUpper(cur) && builder.Length != 0) {
builder.Append(' ');
}
builder.Append(cur);
}

// Show our Fixed Sentence
lblFixed.Text = "";
lblFixed.Text = "Fixed: " + builder.ToString();

每次使用 Insert 方法都会创建一个新的 string 实例,从而导致大量不必要的分配值。 StringBuilder 在您调用 ToString 方法之前实际上不会分配 String

关于C#修复语句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9861188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com