我需要縮短串下來結尾的字符串的前幾個字符..180字
假設我們有長度500
我只希望它的第一部分的字符串 - 最多180個字符,以結尾字結尾,然後達到180.我不想在字中間切短字符串。
這是如何實現的?它不一定要表現得那麼好。這是每天發生幾次的事情,而不是更多。
我需要縮短串下來結尾的字符串的前幾個字符..180字
假設我們有長度500
我只希望它的第一部分的字符串 - 最多180個字符,以結尾字結尾,然後達到180.我不想在字中間切短字符串。
這是如何實現的?它不一定要表現得那麼好。這是每天發生幾次的事情,而不是更多。
一個非常簡單的方法是使用這個表達式:
string trimmed = Regex.Match(input,@"^.{1,180}\b").Value;
與一個唯一的問題是,它可能包含尾隨空白。爲了解決這個問題,我們可以添加一點負面的後視:
string trimmed = Regex.Match(input,@"^.{1,180}\b(?<!\s)").Value;
這應該有所斬斷。
Conceptially
檢查字符串長度超過180個字符。
抓取前180個字符作爲子字符串。
通過使用「LastIndexOf」方法返回所需的字符串的長度與子字符串的長度以返回相應的字符串。
代碼:
string InString;
InString = "Your long string goes here";
if (InString.Length>180) //Check the string length
{
InString = InString.Substring(0, 180); //Get the first 180 chars
InString = InString.Substring(0,InString.LastIndexOf(" ")); //Stop at the last space
}
這應返回正確的字符串;儘管LastIndexOfAny將允許您將其他字符添加到您的EOL列表中。
你只需要使用上串類正常的命令:
string short = myStr.Substring(0, 180);
int end = short.LastIndexOfAny(new char[] {' ', '\t', '\n'}); //maybe more
return short.Substring(0, end);
這是一個很好的! – 2009-08-05 10:16:52