LoginSignup
0
0

More than 5 years have passed since last update.

Maxに設定した(30)文字以内で、「。\t」などの区切り文字にマッチする文字でテキストを分割するMethod

Posted at

いま作っている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;
        }
    }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0