我有一個文本像字符串分割的長度和分裂只能通過最近的空間
var data = "âô¢¬ôè÷¢ : ªîø¢è¤ô¢ - ã¿ñ¬ô ñèù¢ ªð¼ñ£÷¢ ï¤ôñ¢,«ñø¢è¤ô¢ - ªð¼ñ£÷¢ ñèù¢ ÝÁºèñ¢ ï¤ô袰ñ¢ ñ¤ì¢ì£ Üò¢òñ¢ ªð¼ñ£ñ¢ð좮 è¤ó£ñ âô¢¬ô袰ñ¢,õìè¢è¤ô¢ - ÝÁºèñ¢ ï¤ôñ¢,è¤öè¢è¤ô¢ - ô좲ñ¤ ï¤ôñ¢ ñø¢Áñ¢ 1,22 ªê ï¤ôñ¢ ð£î¢î¤òñ¢";
和我遇到的擴展方法來分割字符串
public static IEnumerable<string> EnumByLength(this string s, int length)
{
for (int i = 0; i < s.Length; i += length)
{
if (i + length <= s.Length)
{
yield return s.Substring(i, length);
}
else
{
yield return s.Substring(i);
}
}
}
public static string[] SplitByLength(this string s, int maxLen)
{
var v = EnumByLength(s, maxLen);
if (v == null)
return new string[] { s };
else
return s.EnumByLength(maxLen).ToArray();
}
現在的問題是
要按最大長度150
拆分此字符串,並且拆分必須僅由其中的最近空格完成..(在150
之前或在之後..不在一個字的中間。
怎麼樣?
所以你要'.Split( '')'基於空格的字符串?(i噸將有助於澄清空間在一個單詞中的位置) – Sayse
此外,斯普利特只有在字符串索引'150'後才能執行..我問正確嗎? –
這個問題應該用傳統/標準的'while和for loop'來解決,爲什麼'LINQ'? –