Csharp/C Sharp/Development Class/StringBuilder

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

Create a StringBuilder which hold 100 characters.

<source lang="csharp">

using System; using System.Text; class StringApp {

   static void Main(string[] args) {
       StringBuilder myBuffer = new StringBuilder("My string data");
       Console.WriteLine(myBuffer.Capacity);
       myBuffer.Append(" contains some numerical data: ");
       myBuffer.AppendFormat("{0}, {1}.", 44, 99);
       Console.WriteLine(myBuffer.Capacity);
       Console.WriteLine(myBuffer);
   }

}

</source>


illustrates reading and writing string data

<source lang="csharp"> /* Mastering Visual C# .NET by Jason Price, Mike Gunderloy Publisher: Sybex; ISBN: 0782129110

  • /
/*
 Example15_17.cs illustrates reading and writing string data
  • /

using System; using System.IO; using System.Text; public class Example15_17 {

 public static void Main() 
 {
   // create a new string to work with
   StringBuilder sb = new StringBuilder();
   // use a StringWriter to write data to the string
   StringWriter sw = new StringWriter(sb);
   // write some text to the string
   sw.Write("This is a test of the StringWriter class");
   sw.Close();
   // now open the string for reading
   StringReader sr = new StringReader(sb.ToString());
   // read the entire string into a buffer and display it
   string EntireString;
 
   EntireString = sr.ReadToEnd();
   Console.WriteLine(EntireString);
   // clean up
   sr.Close();
 }

}


      </source>


Length and Indexer

<source lang="csharp"> using System; using System.Text; class MainClass {

   public static string ReverseString(string str)
   {
      if (str == null || str.Length <= 1) 
      {
           return str;
      }
      StringBuilder revStr = new StringBuilder(str.Length);
      for (int count = str.Length - 1; count > -1; count--)
      {
          revStr.Append(str[count]);
      }
      return revStr.ToString();
  }
  public static void Main(){
      Console.WriteLine(ReverseString("Madam Im Adam"));
      Console.WriteLine(ReverseString("The quick brown fox jumped over the lazy dog."));
  }

}

</source>


Replace char in a StringBuilder object

<source lang="csharp"> using System; using System.Collections.Generic; using System.Text; class Program {

   static void Main(string[] args) {
       StringBuilder greetingBuilder = new StringBuilder("www.nfex.ru");
       for (int i = (int)"z"; i >= (int)"a"; i--) {
           char old1 = (char)i;
           char new1 = (char)(i + 1);
           greetingBuilder = greetingBuilder.Replace(old1, new1);
       }
       for (int i = (int)"Z"; i >= (int)"A"; i--) {
           char old1 = (char)i;
           char new1 = (char)(i + 1);
           greetingBuilder = greetingBuilder.Replace(old1, new1);
       }
       Console.WriteLine("Encoded:\n" + greetingBuilder.ToString());
   }

}

</source>


Replace Char with String

<source lang="csharp"> using System; using System.Text; public class MainClass {

   static String ReplaceCharString(String s, char c1, String s2) {
       StringBuilder res = new StringBuilder();
       for (int i = 0; i < s.Length; i++)
           if (s[i] == c1)
               res.Append(s2);
           else
               res.Append(s[i]);
       return res.ToString();
   }

}

</source>


String Concatenation

<source lang="csharp"> /*

* 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 StringConcatenation
 {
   static void Main(string[] args)
   {
   StringBuilder MyString = new
     StringBuilder("Hello");
   MyString.Insert(0, "My");
   MyString.Append("World");
   Console.WriteLine(MyString);
   }
 }

}

      </source>


Use StringBuilder to reverse a string

<source lang="csharp"> using System; using System.Text; class MainClass {

   public static string ReverseString(string str)
   {
      if (str == null || str.Length <= 1) 
      {
           return str;
      }
      StringBuilder revStr = new StringBuilder(str.Length);
      for (int count = str.Length - 1; count > -1; count--)
      {
          revStr.Append(str[count]);
      }
      return revStr.ToString();
  }
   public static void Main() {
       Console.WriteLine(ReverseString("The quick brown fox jumped over the lazy dog."));
   }

}

</source>


using the StringBuilder methods Replace, Insert, Append, AppendFormat, and Remove:

<source lang="csharp"> using System; using System.Text; class UseSBApp {

   static void Main(string[] args) {
       StringBuilder sb = new StringBuilder("Pineapple");
       sb.Replace("e", "X");
       sb.Insert(4, "Banana");
       sb.Append("Kiwi");
       sb.AppendFormat(", {0}:{1}", 123, 45.6789);
       sb.Remove(sb.Length - 3, 3);
       Console.WriteLine(sb);
   }

}

</source>