在 C# 代码隐藏中修剪字符串

本文关键字:修剪 字符串 隐藏 代码 | 更新日期: 2023-09-27 18:32:20

我的代码隐藏中有这一行:

lblAboutMe.Text = (DT1["UserBody"].ToString());

没问题。 但是现在,我们只想显示段落的开头,然后显示省略号。 所以,而不是:

请阅读所有内容,因为我讨厌与不这样做的人浪费时间。如果 你对穆斯林有问题,请继续前进,因为我没有。我曾经 实践伊斯兰教,虽然我不再这样做,但我仍然尊重它并憎恨它 人们通过跟随媒体或污名而不是污名来表现出的无知 体验它或与穆斯林交谈以教育自己 它。提到本简介后面的禁毒政策,是的, 大麻/大麻算作毒品,对我来说是不行的,所以请继续前进。 我知道接下来的事情让我看起来很冷,但我真的很温暖, 爱,非常致力于正确的人,我只是厌倦了被玩 并被视为理所当然/优势。人们撒谎太多而忽略 我说的很多东西我都不想要。我被告知很多次 在这里,我寻求的太多了。

我们只想取第一个,比如 100 个字符,然后用省略号跟上省略号。 所以,像这样:

请阅读所有内容,因为我讨厌与不这样做的人浪费时间。如果 你对穆斯林有问题,请继续前进,因为我没有。我曾经 实践伊斯兰教,虽然我不再这样做,但我仍然尊重它并憎恨它 人们通过跟随媒体或污名而不是污名来表现出的无知 体验它或与穆斯林交谈以教育自己......

我们如何在代码隐藏中做到这一点? 我有一种感觉,这很容易(因为在 Access 中很容易),但我仍然不熟悉这种语言。

在 C# 代码隐藏中修剪字符串

使用Length来确定您的string长度,如果太长,请使用Substring来获取其中的一些(100 个字符):

string aboutme = DT1["UserBody"] != null ? DT1["UserBody"].ToString() : ""; //just in case DT1["UserBody"] is null
lblAboutMe.Text = aboutme.Length > 100 ? aboutme.Substring(0,100) + "..." : aboutme;

String.Substring(startIndex, lenght) 来做:

lblAboutMe.Text = DT1["UserBody"].ToString().Substring(0, 100) + " ...";

MSDN - 子字符串

如果你想要完整的单词,请尝试以下代码。它确定 null 值以及它是否大于 100 个字符。比它使舒尔一个空间在最后:

int maxLength = 100;
string body = DT1["UserBody"] != null ? DT1["UserBody"].ToString() : "";
if (!string.IsNullOrEmpty(body))
{
    if(body.Length > maxLength)
    {
        body = body.Substring(0, maxLength);
        // if you want to have full words
        if (body.Contains(" "))
        {
            while (body[body.Length - 1] != ' ')
            {
                body = body.Substring(0, body.Length - 1);
                if(body.Length == 2)
                {
                    break;
                }
            }
        }
        lblAboutMe.Text = body + "...";
    }
    else
    {
        lblAboutMe.Text = body;
    }
}

还请检查空字符串或空字符串

 string aboutme = Convert.ToString(DT1["UserBody"]);
    if (!string.IsNullOrEmpty(aboutme))
    {
        lblAboutMe.Text = aboutme.Length > 100 ? aboutme.Substring(0, 100) +"..." : aboutme;
    }

基本上,您使用Substring但请注意少于 100 个字符的短文本

string test = /* your full string */;
string result = test.Substring(0, Math.Min(test.Length, 100)) + " ...";

如果你想在空格处切割,使用IndexOf或者如果你想考虑各种空白,你可以做一些类似于以下内容的事情:

string result = test.Substring(0, Math.Min(test.Length, 100));
if (test.Length > 100)
{
    result += new string(test.Substring(100).TakeWhile(x => !char.IsWhiteSpace(x)).ToArray()) + " ...";
}