在 C# 代码隐藏中修剪字符串
本文关键字:修剪 字符串 隐藏 代码 | 更新日期: 2023-09-27 18:32:20
我的代码隐藏中有这一行:
lblAboutMe.Text = (DT1["UserBody"].ToString());
没问题。 但是现在,我们只想显示段落的开头,然后显示省略号。 所以,而不是:
请阅读所有内容,因为我讨厌与不这样做的人浪费时间。如果 你对穆斯林有问题,请继续前进,因为我没有。我曾经 实践伊斯兰教,虽然我不再这样做,但我仍然尊重它并憎恨它 人们通过跟随媒体或污名而不是污名来表现出的无知 体验它或与穆斯林交谈以教育自己 它。提到本简介后面的禁毒政策,是的, 大麻/大麻算作毒品,对我来说是不行的,所以请继续前进。 我知道接下来的事情让我看起来很冷,但我真的很温暖, 爱,非常致力于正确的人,我只是厌倦了被玩 并被视为理所当然/优势。人们撒谎太多而忽略 我说的很多东西我都不想要。我被告知很多次 在这里,我寻求的太多了。
我们只想取第一个,比如 100 个字符,然后用省略号跟上省略号。 所以,像这样:
请阅读所有内容,因为我讨厌与不这样做的人浪费时间。如果 你对穆斯林有问题,请继续前进,因为我没有。我曾经 实践伊斯兰教,虽然我不再这样做,但我仍然尊重它并憎恨它 人们通过跟随媒体或污名而不是污名来表现出的无知 体验它或与穆斯林交谈以教育自己......
我们如何在代码隐藏中做到这一点? 我有一种感觉,这很容易(因为在 Access 中很容易),但我仍然不熟悉这种语言。
使用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()) + " ...";
}