繁体   English   中英

最小化C#中的字符串长度

[英]minimize length of string in C#

我想减少字符串的长度。 喜欢...

这串...

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);

使用 Substring 获取字符串的前 50 个字符。 http://msdn.microsoft.com/en-us/library/aka44szs.aspx

代码

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);

输出

知乎...

代替

Lorem ipsum dolor 坐 amet,consectetur adipiscing 精英。 Aenean in vehicula nulla。 Phasellus libero dui, luctus quis bibendum 坐 amet

尝试这个

string myString = ".....";
int maxLength = 30;

if( myString.Length > maxLength ){
  myString = myString.SubString(0, maxLength);
}

myString现在是maxLength大小的最大值。

 public static string TruncatString(string input, int maxLength)
        {
            if (input.Length < maxLength) return input;
            return input.Substring(0, maxLength - 3) + "...";
        }

干得好:

 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) + "...";
    }
}

给定字符串 -

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;

输出: “Lorem ipsum dol...”;

2. 第二种情况

var shortString =(string .Length > maxlenght ) ?  string.Substring(0, string.IndexOf(" ", 15)) + "..." : string;

输出: “Lorem ipsum dolor...”;

如果你想要最后一句话完整,那么第二个 senario 是最好的......

这现在很好用...

 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;
    } 
string foo ="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean in vehiculanulla. Phasellus libero dui, luctus quis bibendum sit amet";
string small_foo = foo.Substring(new  Random().Next(0, urlsafe.Length), new Random().Next(2, 6));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM