いま作っているToDoViewerがだいぶかたちになってきた。
Todo.lyのToDoを表示できるようになった。
その最中に、取得したToDoの特定文字数以下で、区切りのよい文字数で文章を区切り、前半をタイトル、後半を本文として使うメソッドがほしくなった。これがないと、最近Web系でよくあるけど、文章の途中で…となっていて、なんだか消化不良になりそうだと感じたのだ。まだ動作確認していないが、まあ動くと思う。たぶん。
using System.Collections.Generic;
namespace StringEdit {
class StringEdit {
/// <summary>
/// Maxに設定した(30)文字以内で、「。\t」などの区切り文字にマッチする文字でテキストを分割するMethod
/// </summary>
/// <param name="inputtext">入力文字列</param>
/// <param name="maxlength">Maxに設定する文字</param>
/// <returns>分割した文字列</returns>
public List<string> splittext(string inputtext, int maxlength) {
List<string> returntexts = new List<string>();
List<string> Splitter = new List<string> { "\r\n", "\r", "\n", "、", "。", ",", ".", " ", "\t" , " " };
if (inputtext.Length < maxlength) {
returntexts.Add(inputtext);
return returntexts;
}
for (int i = maxlength; 10 <= i; i--) {
string text = inputtext.Substring(i);
if (Splitter.Contains(text)) {
string before = inputtext.Substring(0, i);
string after = inputtext.Substring(i);
returntexts.Add(before);
returntexts.Add(after);
}
}
return returntexts;
}
}
}