минимизировать длину строки в C # - PullRequest
4 голосов
/ 17 марта 2011

Привет, ребята.

Я хочу уменьшить длину строки.Как ...

Эта строка ...

string foo ="Lorem ipsum dolor sit amet, consectetur adipiscing elit. Aenean in vehicula nulla. Phasellus libero dui, luctus quis bibendum sit amet";

Становится этой строкой ...

Lorem Ipsum Dolor Sit Amet, Adceiscing Concetetur ...

Как мне это сделать?Спасибо!

Ответы [ 6 ]

10 голосов
/ 17 марта 2011
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

3 голосов
/ 17 марта 2011

Код

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 sit amet, consictetur adipiscing ...

Вместо

Lorem Ipsum Dolor Sit Amet, Concetetur Adipiscing Elit.Энея в транспортном средстве.Phasellus libero dui, luctus quis bibendum sit amet

2 голосов
/ 17 марта 2011

Попробуйте это

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

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

myString теперь является максимальным размером maxLength.

1 голос
/ 25 июня 2013
 public static string TruncatString(string input, int maxLength)
        {
            if (input.Length < maxLength) return input;
            return input.Substring(0, maxLength - 3) + "...";
        }
1 голос
/ 17 марта 2011

Вот, пожалуйста:

 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) + "...";
    }
}
0 голосов
/ 12 февраля 2014

Заданная строка -

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 ...";

, если вы хотите, чтобы последнее слово было полным, тогдавторой сенарио лучший ...

теперь это прекрасно работает ...

 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;
    } 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...