20 if ( o1 == o2 )
return true;
25 if ( o1 is
string ) s1 = (string)o1;
26 else if (o1 is StringBuilder) s1 = ((StringBuilder)o1).ToString();
29 if ( o2 is
string ) s2 = (string)o2;
30 else if (o2 is StringBuilder) s2 = ((StringBuilder)o2).ToString();
43 public static StringBuilder
RemoveLast(
this StringBuilder builder,
int chars)
45 if ( builder.Length <= chars )
51 builder.Length -= chars;
62 public static void Substring(
this StringBuilder src, StringBuilder dest,
int start,
int length )
64 for (
int i = start; i < length; i++ )
77 public static StringBuilder
Substring(
this StringBuilder builder,
int start,
int length )
79 StringBuilder result =
new StringBuilder();
80 builder.Substring( start, length );
89 public static void PutTo(
this StringBuilder src, StringBuilder dest )
102 public static void PutTo(
this StringBuilder src, StringBuilder dest,
int start,
int length )
104 src.Substring( dest, start, length );
105 src.Remove( start, length );
115 public static StringBuilder
PutTo(
this StringBuilder builder,
int start,
int length )
117 StringBuilder removed = builder.Substring( start, length );
118 builder.Remove( start, length );
128 public static int IndexForWhich(
this StringBuilder builder, Predicate<char> pred )
130 for (
int i = 0; i < builder.Length; i++ )
132 if ( pred( builder[i] ) )
145 public static int IndexOf(
this StringBuilder builder,
char c )
147 return builder.IndexForWhich( ch => ch == c );
155 public static void RemoveLeading(
this StringBuilder builder, Predicate<char> pred )
158 for ( i = 0; i < builder.Length; i++ )
160 if ( !pred( builder[i] ) )
165 builder.Remove( 0, i );
173 public static void RemoveTrailing(
this StringBuilder builder, Predicate<char> pred )
176 for ( i = builder.Length - 1; i >= 0; i-- )
178 if ( !pred( builder[i] ) )
182 if (i < builder.Length - 1)
183 builder.Remove( i + 1, builder.Length - i - 1 );
190 public static void Trim(
this StringBuilder builder )
192 builder.RemoveLeading( c => Char.IsWhiteSpace( c ) );
193 builder.RemoveTrailing( c => Char.IsWhiteSpace( c ) );
201 public static void TakeFirstWord(
this StringBuilder src, StringBuilder dest )
203 int ws = src.IndexForWhich( c =>
char.IsWhiteSpace( c ) );
204 if ( ws < 0 ) src.PutTo( dest );
205 else src.PutTo( dest, 0, ws + 1 );
214 public static string Repeat(
this string s,
int times )
216 StringBuilder sb =
new StringBuilder();
218 for (
int i = 0; i < times; i++)
221 return sb.ToString();
230 public static string[]
Append(
this string s, params
object[] ends )
232 string[] results =
new string[ends.Length];
234 for (
int i = 0; i < ends.Length; i++ )
236 results[i] = s + ends[i];
Sisältää avustusmetodeja merkkijonojen käsittelyyn.
static int IndexOf(this StringBuilder builder, char c)
Missä indeksissä annettu merkki sijaitsee
static void PutTo(this StringBuilder src, StringBuilder dest)
Poistaa koko StringBuilderin sisällön ja kirjoittaa sen toiseen StringBuilderiin.
static StringBuilder PutTo(this StringBuilder builder, int start, int length)
Poistaa osamerkkijonon ja palauttaa sen toisena StringBuilderina..
static string[] Append(this string s, params object[] ends)
Lisää merkkijonon jokaisen merkkijonotaulukon alkion alkuun
static StringBuilder RemoveLast(this StringBuilder builder, int chars)
Poistaa merkkijonon lopusta tietyn määrän merkkejä. Jos merkkijono on lyhyempi kuin poistettava määrä...
static void PutTo(this StringBuilder src, StringBuilder dest, int start, int length)
Poistaa osamerkkijonon ja kirjoittaa sen toiseen StringBuilderiin.
static bool StringEquals(object o1, object o2)
Vertaa kahta oliota, jotka ovat joko merkkijonoja tai StringBuildereita, merkki kerrallaan.
static void Substring(this StringBuilder src, StringBuilder dest, int start, int length)
Kirjoittaa osamerkkijonon toiseen StringBuilderiin.
static int IndexForWhich(this StringBuilder builder, Predicate< char > pred)
StringBuilderin indeksi jossa annettu funktio on ensimmäisen kerran tosi.
static StringBuilder Substring(this StringBuilder builder, int start, int length)
Palauttaa osamerkkijonon toisena StringBuilderina.
static string Repeat(this string s, int times)
Toistaa merkkijonon annetun määrän verran.
static void RemoveLeading(this StringBuilder builder, Predicate< char > pred)
Poistaa kaiken joka tulee ennen ehdon toteutumista
static void RemoveTrailing(this StringBuilder builder, Predicate< char > pred)
Poistaa kaiken joka tulee ehdon toteutumisen jälkeen
static void Trim(this StringBuilder builder)
Poistaa tyhjät merkit alusta ja lopusta
static void TakeFirstWord(this StringBuilder src, StringBuilder dest)
Ottaa ensimmäisen sanan ja lisää sen toiseen StringBuilderiin