gpt4 book ai didi

c# - StartIndex 不能小于零。 - 尝试更改字符串时出错

转载 作者:可可西里 更新时间:2023-11-01 08:55:44 33 4
gpt4 key购买 nike

我有以下 C# 代码:

ArticleContent = ds1.Tables[0].Rows[i]["ArticleContent"].ToString();

if (ArticleContent.Length > 260)
{
ArticleContent = ArticleContent.Remove(ArticleContent.IndexOf('.', 250)) + "...";
}

这里的问题是我收到此错误消息:

StartIndex cannot be less than zero.

为什么以及如何解决?

最佳答案

您收到该错误是因为在索引 250 上或之后没有 '.' 字符,因此 IndexOf 返回 -1。然后,您尝试删除 -1 位置的字符,这会导致您看到错误。

还要意识到 Remove 只会删除那个位置的一个字符,而不是那个位置之后的所有字符。我怀疑你想要的是:

if (ArticleContent.Length > 260)
{
int lastPeriod = ArticleContent.LastIndexOf('.');
if(lastPeriod < 0)
lastPeriod = 257; // just replace the last three characters
ArticleContent = ArticleContent.Substring(0,lastPeriod) + "...";
}

这将向字符串添加省略号,确保它不再超过 260 个字符,并尽可能在一个句子处打断。

关于c# - StartIndex 不能小于零。 - 尝试更改字符串时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17282058/

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