[Sitecore][ライブラリ]Sitecore.StringUtilクラスにある便利な関数を見てみる

よくアイテムの紹介が長くなる場合にそれを一定の長さにして最後に”…”を追加する場合あります。同僚のコードを見たらsubstringをつかって長さを制限し、最後に”…”を追加しています。これはサイトコアのSitecore.StringUtilクラスにすでにあります。案外それを使われていないようです。

20140626_01

ここでよく使われているいつくかをリストします。
StringUtil.Clip(string text, int length, bool ellipsis)
指定した位置でのテキストをクリップし、指定によって、…省略記号を追加します。

string s0 = StringUtil.Clip("Hello world", 5, false); 
// "Hello"
string s1 = StringUtil.Clip("Hello world", 5, true); 
//"He..."

StringUtil.Capitalize(string text) 最初の文字を大文字にします。

string text = MainUtil.Capitalize("HELLO WORLD.");
// "Hello world"
string text = MainUtil.Capitalize("HELLO. HOW ARE YOU?");
// "Hello. how are you?"

URL関連
EnsurePostfix(char postfix, string value) 文字列が特定のPostfixを持っていることを保証します。
EnsurePrefix(char prefix, string value) 文字列が特定のPrefixを持っていることを保証します。.
RemovePostfix(string prefix, string value) 文字列からPostfixを削除します。
RemovePrefix(char prefix, string value) 文字列からPrefixを削除します。
string.Concat(StringUtil.EnsurePostfix(‘/’, strUrl.Path), StringUtil.RemovePrefix(‘/’, strPath));

その他
RemoveLineFeeds(string text)
text.Replace(“\r”, “”).Replace(“\n”, “”);

GetLastPart(string text, char delimiter, string defaultValue)
文字区切り文字を使用して区切られた文字列テキストの最後の部分を返します。
区切り記号が見つからない場合は既定値を返します。

string.Format("GetLastPart:{0}",Sitecore.StringUtil.GetLastPart("/sitecore/content/Home/test", '/', string.Empty));
"test"

ExtractParameter(string name, string parameters) クエリ文字列フォーマットされた文字列からパラメータ文字列を抽出します。

string parameters = "print=1&target=/sitecore/content/home&test=false";
string print = StringUtil.ExtractParameter("print", parameters);
// "1"
string target = StringUtil.ExtractParameter("target", parameters);
// "/sitecore/content/home"
string dummy = StringUtil.ExtractParameter("dummy", parameters);
// ""

文字列のサイズを取得します。

GetSizeString(long size)
      string str = "";
      if (size >= 1024L)
      {
        size /= 1024L;
        str = "KB";
        if (size >= 1024L)
        {
          size /= 1024L;
          str = "MB";
          if (size >= 1024L)
          {
            size /= 1024L;
            str = "GB";
          }
        }
      }
      return size.ToString() + str;

 IsWhiteSpace(string s)
 return Regex.IsMatch(s, "^[\\s]*$");

文字列を分割し、トリミングのオプション付

Split(string text, char delimiter, bool trim)
 ArrayList list1 = StringUtil.Split("Hello | world", '|', true); 
/// "Hello", "world"
ArrayList list2 = StringUtil.Split("Hello | world", '|', false); 
/// "Hello ", " world"

文字列を均等なサイズにカットします。CutUp(string text, int chunkSize)

CutUp(string text, int chunkSize)
string text = "Hello world";
ArrayList list = StringUtil.Cut(test, 3);
// "Hel", "llo", " wo", "rld"
string text = "ABCDEFGHIGKLMNOPQRSTUVWXYZ";
ArrayList list = StringUtil.Cut(test, 1);
//"A", "B", "C",….

 

Uncategorized