繁体   English   中英

String.Substring(…)方法产生异常

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM