[英]String.Substring(…) Method Gives Exception
我想从富文本框中将一个字符串保留为另一个字符串strTotal。 然后我想通过一个中间索引将其拆分成两个substring,如firstPart和secondPart:midIndex。
然后,我想在firsthalf中更改一些值并与secondhalf一起加入。 最后将其显示给richTextBox。
为此,我使用了以下代码:
对于我的上次调试:
rtxtQueryPan.Text.Length = 53; midIndex = 45;
//string Totalqueryy = rtxtQueryPan.Text;
string firstHalf = rtxtQueryPan.Text.Substring(0, midIndex-2);
string secondHalf = rtxtQueryPan.Text.Substring((midIndex- 1), (rtxtQueryPan.Text.Length - 1)); // THIS LINE SHOWS ERROR
string duplicateFirstHalf = firstHalf;
firstHalf += " " + clColumnNames.Text + ",";
rtxtQueryPan.Text = firstHalf+secondHalf;
在代码的第三行中说:
索引和长度必须引用字符串中的位置。 参数名称:长度
我检查了长度,midIndexvalue等。但是没有发现任何线索。
C#的.Substring
函数将长度而不是位置作为其第二个参数。
因此,您可能想编写以下代码:
rtxtQueryPan.Text.Substring(midIndex-1, (rtxtQueryPan.Text.Length-1) - midIndex);
另外,length参数是可选的,不是大小写应提供的,因为您希望包含字符串的其余部分。 因此,您还可以编写:
rtxtQueryPan.Text.Substring(midIndex-1);
Substring
只能在作用于字符串的范围内工作。 在这里, rtxtQueryPan.Text
指的是RichTextBox
中的文本,该文本的长度比字符串中当前保留的文本长。 记住Substring
的参数是起始位置和长度。
您需要(rtxtQueryPan.Text.Length-1) - midIndex
作为第二个参数。
我希望这有帮助。
问题是您从中间抓取第二个字符串并说我想要整个字符串。 如果使用子字符串,则第二个参数是子字符串的长度。 这应该解决它。 string secondHalf = rtxtQueryPan.Text.Substring((midIndex- 1), (rtxtQueryPan.Text.Length - 1-midIndex));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.