Csharp/C Sharp/Language Basics/StringBuffer StringBuilder

Материал из .Net Framework эксперт
Перейти к: навигация, поиск

Demonstrating StringBuilder AppendFormat

    using System;
    using System.Text;
   class StringBuilderAppendFormat {
      static void Main(string[] args)
      {
         StringBuilder buffer = new StringBuilder();
         string string1, string2;
         string1 = "This {0} costs: {1:C}.\n";
         object[] objectArray = new object[ 2 ];
         objectArray[ 0 ] = "Software";
         objectArray[ 1 ] = 1234.56;
         buffer.AppendFormat( string1, objectArray );
         string2 = "Number:{0:d3}.\n" +
            "Number right aligned with spaces:{0, 4}.\n" +
            "Number left aligned with spaces:{0, -4}.";
         buffer.AppendFormat( string2, 5 );
         Console.WriteLine(buffer.ToString());
      }
   }


illustrates the use of StringBuilder objects

/*
Mastering Visual C# .NET
by Jason Price, Mike Gunderloy
Publisher: Sybex;
ISBN: 0782129110
*/
/*
  Example9_2.cs illustrates the use of StringBuilder objects
*/
using System;
using System.Text;
public class Example9_2
{
  public static void DisplayProperties(
    string name,
    StringBuilder myStringBuilder
  )
  {
    // display the properties for the StringBuilder object
    Console.WriteLine(name + ".Length = " +
      myStringBuilder.Length);
    Console.WriteLine(name + ".Capacity = " +
      myStringBuilder.Capacity);
    Console.WriteLine(name + ".MaxCapacity = " +
      myStringBuilder.MaxCapacity);
  }

  public static void Main()
  {
    // create some StringBuilder objects
    StringBuilder myStringBuilder = new StringBuilder();
    int capacity = 50;
    StringBuilder myStringBuilder2 = new StringBuilder(capacity);
    int maxCapacity = 100;
    StringBuilder myStringBuilder3 =
      new StringBuilder(capacity, maxCapacity);
    string myString = "To be or not to be";
    StringBuilder myStringBuilder4 = new StringBuilder(myString);
    int startIndex = 0;
    int stringLength = myString.Length;
    StringBuilder myStringBuilder5 =
      new StringBuilder(myString, startIndex, stringLength, capacity);
    // display the StringBuilder objects" properties
    DisplayProperties("myStringBuilder", myStringBuilder);
    DisplayProperties("myStringBuilder2", myStringBuilder2);
    DisplayProperties("myStringBuilder3", myStringBuilder3);
    DisplayProperties("myStringBuilder4", myStringBuilder4);
    DisplayProperties("myStringBuilder5", myStringBuilder5);
    // use the Append() method to append two strings, an int, and a bool
    // to myStringBuilder
    myStringBuilder.Append(myString);
    myStringBuilder.Append(", that is the question ... ");
    int myInt = 1234;
    myStringBuilder.Append(myInt);
    bool myBool = true;
    myStringBuilder.Append(myBool);
    // use the Append() method to append a character to myStringBuilder
    myStringBuilder.Append("z", 5);
    // use the Append() method to append a substring to myStringBuilder
    myStringBuilder.Append("Here"s another string", 0, 4);
    // display the contents of myStringBuilder
    Console.WriteLine("myStringBuilder = " + myStringBuilder);
    // use the AppendFormat() method to add a formatted
    // string containing a floating point number to myStringBuilder
    float myFloat = 1234.56789f;
    myStringBuilder.AppendFormat("{0, 10:f3}", myFloat);
    Console.WriteLine("myStringBuilder = " + myStringBuilder);
    // use the Insert() method to insert strings into myStringBuilder
    myStringBuilder.Insert(6, "friends, ");
    myStringBuilder.Insert(22, "Romans, ", 3);
    Console.WriteLine("myStringBuilder = " + myStringBuilder);
    // use the Remove() method to remove part of myStringBuilder
    myStringBuilder.Remove(14, 7);
    Console.WriteLine("myStringBuilder = " + myStringBuilder);
    // use the Replace() method to replace part of myStringBuilder
    myStringBuilder.Replace(",", "?");
    Console.WriteLine("myStringBuilder = " + myStringBuilder);
    // use the ToString() method to convert myStringBuilder
    // to a string
    string myString2 = myStringBuilder.ToString();
    Console.WriteLine("myString2 = " + myString2);
  }
}


Replace(): replace part of myStringBuilder

using System;
using System.Text;
   
class Test {
  public static void Main() {
    StringBuilder myStringBuilder = new StringBuilder("1234567890abcdefghijklmnopqret");
    myStringBuilder.Replace("a", "?");
    Console.WriteLine("myStringBuilder = " + myStringBuilder);
  }
}


StringBuffer: Replacing Characters

/*
 * C# Programmers Pocket Consultant
 * Author: Gregory S. MacBeth
 * Email: gmacbeth@comporium.net
 * Create Date: June 27, 2003
 * Last Modified Date:
 */
using System;
using System.Text;
namespace Client.Chapter_6___Strings
{
  public class ReplacingCharacters
  {
    static void Main(string[] args)
    {
      StringBuilder MyString = new StringBuilder("AAAAABBB");
      Console.WriteLine(MyString);
      MyString.Replace("A", "F");
      Console.WriteLine(MyString);
    }
  }
}


StringBuilder AppendFormat() method to add a formatted string containing a floating point number to myStringBuilder

using System;
using System.Text;
   
class Test {
  public static void Main() {
    StringBuilder myStringBuilder = new StringBuilder();
    float myFloat = 1234.56789f;
    myStringBuilder.AppendFormat("{0, 10:f3}", myFloat);
    Console.WriteLine("myStringBuilder = " + myStringBuilder);
  }
}


StringBuilder append: int, char, string, boolean at specific position

using System;
using System.Text;
   
class Test {
  public static void Main() {
    StringBuilder myStringBuilder = new StringBuilder();
    string myString = "www.nfex.ru";
    myStringBuilder.Append(myString);
    myStringBuilder.Append(", www.nfex.ru... ");
    int myInt = 1234;
    myStringBuilder.Append(myInt);
    bool myBool = true;
    myStringBuilder.Append(myBool);
   
    myStringBuilder.Append("z", 5);
   
    myStringBuilder.Append("Here"s another string", 0, 4);
   
    Console.WriteLine("myStringBuilder = " + myStringBuilder);
  }
   
}


StringBuilder EnsureCapacity method

   using System;
   using System.Text;
   class StringBuilderFeatures
   {
      static void Main(string[] args)
      {
         StringBuilder buffer =new StringBuilder( "Hello, how are you?" );
         string output = "buffer = " + buffer.ToString() +
            "\nLength = " + buffer.Length +
            "\nCapacity = " + buffer.Capacity;
         buffer.EnsureCapacity( 75 );
         output += "\n\nNew capacity = " +buffer.Capacity;
         // truncate StringBuilder by setting Length property
         buffer.Length = 10;
         output += "\n\nNew length = " +
            buffer.Length + "\nbuffer = ";
         // use StringBuilder indexer
         for ( int i = 0; i < buffer.Length; i++ )
            output += buffer[ i ];
         Console.WriteLine( output);
      }
   }


StringBuilder foreach

using System;
using System.Text;
public class StringBuilderDemo {
    public static void Main()
    {
        string s = "I will not buy this record, it is scratched";
        char[] separators = new char[] {" ", ","};
        StringBuilder sb = new StringBuilder();
        int number = 1;
        
        foreach (string sub in s.Split(separators))
        {
            sb.AppendFormat("{0}: {1} ", number++, sub);
        }
        Console.WriteLine("{0}", sb);
    }
}


StringBuilder Insert(): insert strings into myStringBuilder

using System;
using System.Text;
   
class Test {
  public static void Main() {
    StringBuilder myStringBuilder = new StringBuilder("asdfasdfadsf");
    myStringBuilder.Insert(6, "friends, ");
    myStringBuilder.Insert(2, "Romans, ", 3);
    Console.WriteLine("myStringBuilder = " + myStringBuilder);
  }
}


StringBuilder"s properties for different constructors

using System;
using System.Text;
   
class Test {
   
  public static void DisplayProperties(string name,StringBuilder myStringBuilder) {
    // display the properties for the StringBuilder object
    Console.WriteLine(name + ".Length = " + myStringBuilder.Length);
    Console.WriteLine(name + ".Capacity = " + myStringBuilder.Capacity);
    Console.WriteLine(name + ".MaxCapacity = " + myStringBuilder.MaxCapacity);
  }
   
   
  public static void Main() {
    StringBuilder myStringBuilder = new StringBuilder();
    int capacity = 50;
    StringBuilder myStringBuilder2 = new StringBuilder(capacity);
    int maxCapacity = 100;
    StringBuilder myStringBuilder3 = new StringBuilder(capacity, maxCapacity);
    string myString = "www.nfex.ru";
    StringBuilder myStringBuilder4 = new StringBuilder(myString);
    int startIndex = 0;
    int stringLength = myString.Length;
    StringBuilder myStringBuilder5 = new StringBuilder(myString, startIndex, stringLength, capacity);
   
    // display the StringBuilder objects" properties
    DisplayProperties("myStringBuilder", myStringBuilder);
    DisplayProperties("myStringBuilder2", myStringBuilder2);
    DisplayProperties("myStringBuilder3", myStringBuilder3);
    DisplayProperties("myStringBuilder4", myStringBuilder4);
    DisplayProperties("myStringBuilder5", myStringBuilder5);
   
  }
   
}


StringBuilder: write line

using System;
using System.Text;
public class SampleBuilder
{
    public static void Main()
    {
        StringBuilder sb = new StringBuilder("test string");
        int length = 0;
    
        length = sb.Length;
        Console.WriteLine("The result is: "{0}"", sb);
        Console.WriteLine("The length is: {0}", length);
    
        sb.Length = 4;
        length = sb.Length;
        Console.WriteLine("The result is: "{0}"", sb);
        Console.WriteLine("The length is: {0}", length);
    
        sb.Length = 20;
        length = sb.Length;
        Console.WriteLine("The result is: "{0}"", sb);
        Console.WriteLine("The length is: {0}", length);
    }
}


ToString(): convert myStringBuilder to a string

using System;
using System.Text;
   
class Test {
  public static void Main() {
    StringBuilder myStringBuilder = new StringBuilder("1234567890abcdefghijklmnopqret");
    string myString2 = myStringBuilder.ToString();
    Console.WriteLine("myString2 = " + myString2);
  }
}


Use the Remove() method to remove part of StringBuilder

using System;
using System.Text;
   
class Test {
  public static void Main() {
    StringBuilder myStringBuilder = new StringBuilder("1234567890abcdefghijklmnopqret");
    myStringBuilder.Remove(14, 7);
    Console.WriteLine("myStringBuilder = " + myStringBuilder);
  }
}