希望有人有个好主意。我有这样的字符串:
abcdefg
abcde
abc
我需要的是让它们在超过指定长度的情况下像这样显示:
abc ..
abc ..
abc
有没有什么简单的C#代码可以用来做这件事?
发布于 2011-07-17 23:38:16
下面是封装在扩展方法中的逻辑:
public static string Truncate(this string value, int maxChars)
{
return value.Length <= maxChars ? value : value.Substring(0, maxChars) + "...";
}
用法:
var s = "abcdefg";
Console.WriteLine(s.Truncate(3));
发布于 2018-12-19 09:51:16
都是非常好的答案,但为了把它弄清楚一点,如果你的字符串是句子,不要在单词中间打断你的字符串。
private string TruncateForDisplay(this string value, int length)
{
if (string.IsNullOrEmpty(value)) return string.Empty;
var returnValue = value;
if (value.Length > length)
{
var tmp = value.Substring(0, length) ;
if (tmp.LastIndexOf(' ') > 0)
returnValue = tmp.Substring(0, tmp.LastIndexOf(' ') ) + " ...";
}
return returnValue;
}
发布于 2011-07-17 23:32:14
public string TruncString(string myStr, int THRESHOLD)
{
if (myStr.Length > THRESHOLD)
return myStr.Substring(0, THRESHOLD) + "...";
return myStr;
}
忽略命名约定,以防他真的需要阈值变量,或者它总是相同的大小。
另一个选择
string res = (myStr.Length > THRESHOLD) ? myStr.Substring(0, THRESHOLD) + ".." : myStr;
https://stackoverflow.com/questions/6724840
复制相似问题