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”。你去掉了“…”