C# 最小化C中字符串的长度#
我想缩短字符串的长度。像 这个字符串C# 最小化C中字符串的长度#,c#,string,C#,String,我想缩短字符串的长度。像 这个字符串 string foo ="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean in vehicula nulla. Phasellus libero dui, luctus quis bibendum sit amet"; 变成这个字符串 string foo ="Lorem ipsum dolor sit amet, consectetur adip
string foo ="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean in vehicula nulla. Phasellus libero dui, luctus quis bibendum sit amet";
变成这个字符串
string foo ="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean in vehicula nulla. Phasellus libero dui, luctus quis bibendum sit amet";
我爱你,我爱你
我该怎么做?谢谢
string foo ="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean in vehicula nulla. Phasellus libero dui, luctus quis bibendum sit amet";
string small_foo = foo.SubString(0, 50);
使用子字符串获取字符串的前50个字符。
试试这个
string myString = ".....";
int maxLength = 30;
if( myString.Length > maxLength ){
myString = myString.SubString(0, maxLength);
}
myString
现在是maxLength
大小的最大值。code
public string Truncate(string input, int length)
{
if (input.Length < length) return input;
int index = input.IndexOf(' ', length);
return input.Substring(0, index) + "...";
}
...
string foo ="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean in vehicula nulla. Phasellus libero dui, luctus quis bibendum sit amet";
string bar = Truncate(foo, 50);
Console.WriteLine(bar);
公共字符串截断(字符串输入,整数长度)
{
if(input.Length
输出
我爱你,我爱你
而不是
Lorem ipsum dolor sit amet,是一位杰出的献身者。埃尼安在车辆的明渠里。自由酒后驾车,路克斯·奎斯·比本杜姆坐在那里
给你:
class Program
{
static void Main(string[] args)
{
string foo = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean in vehicula nulla. Phasellus libero dui, luctus quis bibendum sit amet";
int maxlength = 50;
string shortFoo = StringShortener(foo, maxlength);
Console.WriteLine("{0} \n becomes: \n {1}", foo, shortFoo);
Console.ReadKey();
}
private static string StringShortener(string foo, int maxlength)
{
if (foo.Length <= maxlength)
return foo;
else
return foo.Substring(0, maxlength - 4) + "...";
}
}
类程序
{
静态void Main(字符串[]参数)
{
string foo=“Lorem ipsum door sit amet,concetetur adivising elite.Aenean in vehiclula nulla.Phasellus libero dui,luctus quis bibendum sit amet”;
int maxlength=50;
string shortFoo=StringShortener(foo,maxlength);
WriteLine(“{0}\n变成:\n{1}”,foo,shortFoo);
Console.ReadKey();
}
私有静态字符串StringShortener(字符串foo,int maxlength)
{
if(foo.Length公共静态字符串截断字符串(字符串输入,int-maxLength)
{
if(input.Length
给定字符串-
var string = "Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean in vehicula nulla. Phasellus libero dui, luctus quis bibendum sit amet";
1.第一种情况
var maxlenght = 15;
var shortString =(string .Length > maxlenght ) ? string.Substring(0,maxlenght ) + "..." : string;
var shortString =(string .Length > maxlenght ) ? string.Substring(0, string.IndexOf(" ", 15)) + "..." : string;
输出:“Lorem ipsum dol…”
2.第二种情况
var maxlenght = 15;
var shortString =(string .Length > maxlenght ) ? string.Substring(0,maxlenght ) + "..." : string;
var shortString =(string .Length > maxlenght ) ? string.Substring(0, string.IndexOf(" ", 15)) + "..." : string;
输出:“Lorem ipsum dolor…”
如果你想要最后一句话,那么第二个塞纳里奥是最好的
这让我现在很好
public static string GetShortTitleForDisplay(string title, int noOfCharacter)
{
var shortTitle = title;
if (title.Length <= noOfCharacter) return shortTitle;
var pos = title.IndexOf(" ", noOfCharacter, StringComparison.Ordinal);
if (pos > 0)
shortTitle = title.Substring(0, pos) + " ...";
return shortTitle;
}
public静态字符串GetShortTitleForDisplay(字符串标题,int noOfCharacter)
{
var shortTitle=标题;
如果(标题长度0)
shortTitle=标题。子字符串(0,位置)+“…”;
返回短标题;
}
你不会真的问任何问题。很明显,你使用的是“查找”和“替换”的组合,但你的问题措词不当,不清楚这里问的是什么。应该有一个“这个问题应该结束,因为它太琐碎”选项……你知道,俗话说“没有愚蠢的问题”…不知何故,我希望它不适用于这里,但走大路意味着耐心和理解。应该在这里执行一些边界检查。如果foo
小于50个字符,这将爆炸。我希望OP在阅读手册时会明白这一点。因为他显然不熟悉子字符串,我不确定。但现在至少他应该是;)注意,这个解决方案也不会产生OP要求的结果-文本的50个字符加上“…”你应该在if(index<0)返回输入之前,在返回子字符串之前,记下命名。方法应该是动作(即动词),对象应该是名词。“StringShortener”听起来像个名词。也许你应该称你的方法为“ShortenString”或更传统的“Truncate”。你去掉了“…”