Пример #1
0
 /// <summary>
 ///  指定された文字列から制御文字を削除します。
 /// </summary>
 /// <param name="s">制御文字を削除する文字スパンです。</param>
 /// <param name="mode">制御文字の削除または変換の方法を指定します。</param>
 /// <param name="removeSpace">
 ///  空白文字を制御文字として扱う場合は<see langword="true"/>、
 ///  それ以外の場合は<see langword="false"/>を指定します。
 /// </param>
 /// <param name="tabIsSpace">
 ///  タブ文字を空白文字として扱う場合は<see langword="true"/>、
 ///  制御文字として扱う場合は<see langword="false"/>を指定します。
 /// </param>
 /// <param name="useAltName">
 ///  一部の制御文字で別名を利用する場合は<see langword="true"/>、
 ///  それ以外の場合は<see langword="false"/>を指定します。
 ///  このオプションは<paramref name="mode"/>が<see cref="TakymLib.ControlCharsReplaceMode.ConvertToText"/>の時にのみ有効です。
 /// </param>
 /// <returns>制御文字が削除された文字列です。</returns>
 public static ReadOnlySpan <char> RemoveControlChars(
     this Span <char> s,
     ControlCharsReplaceMode mode,
     bool removeSpace = false,
     bool tabIsSpace  = true,
     bool useAltName  = false)
 {
     return(((ReadOnlySpan <char>)(s)).RemoveControlChars(mode, removeSpace, tabIsSpace, useAltName));
 }
Пример #2
0
 /// <summary>
 ///  指定された文字列から制御文字を削除します。
 /// </summary>
 /// <param name="s">制御文字を削除する文字配列です。</param>
 /// <param name="mode">制御文字の削除または変換の方法を指定します。</param>
 /// <param name="removeSpace">
 ///  空白文字を制御文字として扱う場合は<see langword="true"/>、
 ///  それ以外の場合は<see langword="false"/>を指定します。
 /// </param>
 /// <param name="tabIsSpace">
 ///  タブ文字を空白文字として扱う場合は<see langword="true"/>、
 ///  制御文字として扱う場合は<see langword="false"/>を指定します。
 /// </param>
 /// <param name="useAltName">
 ///  一部の制御文字で別名を利用する場合は<see langword="true"/>、
 ///  それ以外の場合は<see langword="false"/>を指定します。
 ///  このオプションは<paramref name="mode"/>が<see cref="TakymLib.ControlCharsReplaceMode.ConvertToText"/>の時にのみ有効です。
 /// </param>
 /// <returns>制御文字が削除された文字列です。</returns>
 public static char[] RemoveControlChars(
     this char[] s,
     ControlCharsReplaceMode mode,
     bool removeSpace = false,
     bool tabIsSpace  = true,
     bool useAltName  = false)
 {
     return(((ReadOnlySpan <char>)(s.AsSpan())).RemoveControlChars(mode, removeSpace, tabIsSpace, useAltName).ToArray());
 }
Пример #3
0
 /// <summary>
 ///  指定された文字列から制御文字を削除します。
 /// </summary>
 /// <param name="s">制御文字を削除する読み取り専用文字メモリです。</param>
 /// <param name="mode">制御文字の削除または変換の方法を指定します。</param>
 /// <param name="removeSpace">
 ///  空白文字を制御文字として扱う場合は<see langword="true"/>、
 ///  それ以外の場合は<see langword="false"/>を指定します。
 /// </param>
 /// <param name="tabIsSpace">
 ///  タブ文字を空白文字として扱う場合は<see langword="true"/>、
 ///  制御文字として扱う場合は<see langword="false"/>を指定します。
 /// </param>
 /// <param name="useAltName">
 ///  一部の制御文字で別名を利用する場合は<see langword="true"/>、
 ///  それ以外の場合は<see langword="false"/>を指定します。
 ///  このオプションは<paramref name="mode"/>が<see cref="TakymLib.ControlCharsReplaceMode.ConvertToText"/>の時にのみ有効です。
 /// </param>
 /// <returns>制御文字が削除された文字列です。</returns>
 public static ReadOnlyMemory <char> RemoveControlChars(
     this ReadOnlyMemory <char> s,
     ControlCharsReplaceMode mode,
     bool removeSpace = false,
     bool tabIsSpace  = true,
     bool useAltName  = false)
 {
     return(new(s.Span.RemoveControlChars(mode, removeSpace, tabIsSpace, useAltName).ToArray()));
 }
Пример #4
0
 /// <summary>
 ///  指定された文字列から制御文字を削除します。
 /// </summary>
 /// <param name="s">制御文字を削除する文字列です。</param>
 /// <param name="mode">制御文字の削除または変換の方法を指定します。</param>
 /// <param name="removeSpace">
 ///  空白文字を制御文字として扱う場合は<see langword="true"/>、
 ///  それ以外の場合は<see langword="false"/>を指定します。
 /// </param>
 /// <param name="tabIsSpace">
 ///  タブ文字を空白文字として扱う場合は<see langword="true"/>、
 ///  制御文字として扱う場合は<see langword="false"/>を指定します。
 /// </param>
 /// <param name="useAltName">
 ///  一部の制御文字で別名を利用する場合は<see langword="true"/>、
 ///  それ以外の場合は<see langword="false"/>を指定します。
 ///  このオプションは<paramref name="mode"/>が<see cref="TakymLib.ControlCharsReplaceMode.ConvertToText"/>の時にのみ有効です。
 /// </param>
 /// <returns>制御文字が削除された文字列です。</returns>
 public static string RemoveControlChars(this string s, ControlCharsReplaceMode mode, bool removeSpace = false, bool tabIsSpace = true, bool useAltName = false)
 {
     s ??= string.Empty;
     if (s.Length == 0)
     {
         return(s);
     }
     else
     {
         return(new(s.AsSpan().RemoveControlChars(mode, removeSpace, tabIsSpace, useAltName)));
     }
 }
Пример #5
0
 /// <summary>
 ///  指定された文字列から制御文字を削除します。
 /// </summary>
 /// <param name="s">制御文字を削除する読み取り専用文字スパンです。</param>
 /// <param name="mode">制御文字の削除または変換の方法を指定します。</param>
 /// <param name="removeSpace">
 ///  空白文字を制御文字として扱う場合は<see langword="true"/>、
 ///  それ以外の場合は<see langword="false"/>を指定します。
 /// </param>
 /// <param name="tabIsSpace">
 ///  タブ文字を空白文字として扱う場合は<see langword="true"/>、
 ///  制御文字として扱う場合は<see langword="false"/>を指定します。
 /// </param>
 /// <param name="useAltName">
 ///  一部の制御文字で別名を利用する場合は<see langword="true"/>、
 ///  それ以外の場合は<see langword="false"/>を指定します。
 ///  このオプションは<paramref name="mode"/>が<see cref="TakymLib.ControlCharsReplaceMode.ConvertToText"/>の時にのみ有効です。
 /// </param>
 /// <returns>制御文字が削除された文字列です。</returns>
 public static ReadOnlySpan <char> RemoveControlChars(
     this ReadOnlySpan <char> s,
     ControlCharsReplaceMode mode,
     bool removeSpace = false,
     bool tabIsSpace  = true,
     bool useAltName  = false)
 {
     if (s.Length == 0)
     {
         return(ReadOnlySpan <char> .Empty);
     }
     else
     {
         var sb = new StringBuilder(mode switch {
             ControlCharsReplaceMode.ConvertToText => s.Length * 5,
             _ => s.Length
         });