Die Anleitung zu C# String und StringBuilder
1. Das Diagramm der Inheritance
Beim Umgang mit Textdaten bietet CSharp Ihnen 2 Klasse String und StringBuilder. Beim Umgang mit der großen Daten sollen Sie StringBuilder zur schnellsten Leistung erreichen. Auf der Natur haben die 2 Klasse viele Gleichheit.
- String ist immutable,. Der Begriff wird detailiert im Dokument erwähnt und darf keine untergeordneten Klasse haben.
- StringBuilder ist mutable
2. Der Begriff von mutable & immutable
Sehen Sie ein Beispiel
MutableClassExample.cs
namespace StringTutorial
{
// Das ist ein Klasse mit einen Feld: 'Value'.
// Wenn Sie ein Objekt der Klasse haben,
// können Sie die neue Wert für den Feld 'Value'
// durch die Methode SetNewValue(int) anweisen.
// Deshalb ist das eine veränderbare (mutable) Klasse.
class MutableClassExample
{
private int Value;
public MutableClassExample(int value)
{
this.Value = value;
}
public void SetNewValue(int newValue)
{
this.Value = newValue;
}
}
}
ImmutableClassExample.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StringTutorial
{
// Das ist eine Klasse mit 2 Felder (field): 'Value' & 'Name'.
// Wenn Sie ein Objekt der Klasse haben,
// können Sie die neue Wert für 'Value','Name' vom außen nicht anweisen.
// D.h ist die Klasse unveränderbar (immutable)
class ImmutableClassExample
{
private int Value;
private String Name;
public ImmutableClassExample(String name, int value)
{
this.Value = value;
this.Name = name;
}
public String GetName()
{
return Name;
}
public int GetValue()
{
return Value;
}
}
}
String ist eine immutable Klasse. String hat viele Attribute , wie Length,... Aber die Werte sind nicht veränderbar
3. String und string
Im C# werden String und string parallel benutzt. In der Praxis gibt es keinen Unterschied zwischen ihnen. string kann als einen Alias (alias) für System.String gesehen werden (Der volle Name einschließend namespace der Klasse String).
Die folgende Tabelle bezeichnet die volle Liste des Alias für die üblichen Klassen
Die folgende Tabelle bezeichnet die volle Liste des Alias für die üblichen Klassen
Alias | Class |
object | System.Object |
string | System.String |
bool | System.Boolean |
byte | System.Byte |
sbyte | System.SByte |
short | System.Int16 |
ushort | System.UInt16 |
int | System.Int32 |
uint | System.UInt32 |
long | System.Int64 |
ulong | System.UInt64 |
float | System.Single |
double | System.Double |
decimal | System.Decimal |
char | System.Char |
4. String
String ist eine wichtige Klasse im CSharp. Und irgendwer, der mit CSharp beginnt, benutzt den Befehl Console.WriteLine() um einen String auf dem Bildschirm Console zu drücken. Viele Leuten kennen nicht, String ist immutabel und sealed (versiegelt, darf keine untergeordneten Klassen haben). Alle Änderungen auf String erstellen ein anderes String Objekt
** String **
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class String : IComparable, ICloneable, IConvertible,
IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string>
Die Methode vom String
Sie können die MEthode von String bei ... nachschlagen
Unten ist die Liste der üblichen Methode vom String.
Some String methods
public bool EndsWith(string value)
public bool EndsWith(string value, StringComparison comparisonType)
public bool Equals(string value)
public int IndexOf(char value)
public int IndexOf(char value, int startIndex)
public int IndexOf(string value, int startIndex, int count)
public int IndexOf(string value, int startIndex, StringComparison comparisonType)
public int IndexOf(string value, StringComparison comparisonType)
public string Insert(int startIndex, string value)
public int LastIndexOf(char value)
public int LastIndexOf(char value, int startIndex)
public int LastIndexOf(char value, int startIndex, int count)
public int LastIndexOf(string value)
public int LastIndexOf(string value, int startIndex)
public int LastIndexOf(string value, int startIndex, int count)
public int LastIndexOf(string value, int startIndex, int count, StringComparison comparisonType)
public int LastIndexOf(string value, int startIndex, StringComparison comparisonType)
public int LastIndexOf(string value, StringComparison comparisonType)
public int LastIndexOfAny(char[] anyOf)
public int LastIndexOfAny(char[] anyOf, int startIndex)
public int LastIndexOfAny(char[] anyOf, int startIndex, int count)
public int IndexOf(string value, int startIndex, int count, StringComparison comparisonType)
public string Replace(char oldChar, char newChar)
public string Replace(string oldValue, string newValue)
public string[] Split(params char[] separator)
public string[] Split(char[] separator, int count)
public string[] Split(char[] separator, int count, StringSplitOptions options)
public string[] Split(char[] separator, StringSplitOptions options)
public string[] Split(string[] separator, StringSplitOptions options)
public bool StartsWith(string value)
public bool StartsWith(string value, bool ignoreCase, CultureInfo culture)
public bool StartsWith(string value, StringComparison comparisonType)
public string Substring(int startIndex)
public string Substring(int startIndex, int length)
public char[] ToCharArray()
public char[] ToCharArray(int startIndex, int length)
public string ToLower()
public string ToLower(CultureInfo culture)
public string ToLowerInvariant()
public override string ToString()
public string ToUpper()
public string ToUpper(CultureInfo culture)
public string ToUpperInvariant()
public string Trim()
public string Trim(params char[] trimChars)
public string TrimEnd(params char[] trimChars)
public string TrimStart(params char[] trimChars)
5. StringBuilder
Im C# ist das Ergebnis jeder Veränderung eines String die Erstellung eines neuen String . Inszwischen enthaltet StringBuilder einen Zeichenarray. Und dieser Array wird automatisch durch einen großen Array wenn notwendig ersetzt, und dann die Zeichen vom alten Array kopieren. Wenn Sie die String vielen Mal verbinden müssen, sollen Sie StringBuilder benutzen. Das macht die Leistung des Programms besser. Aber wenn Sie nur einigen String verbinden, ist es nicht notwendig, den StringBuilder zu benutzen
StringBuilderDemo.cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace StringTutorial
{
class StringBuilderDemo
{
public static void Main(string[] args)
{
// Ein Objekt StringBuilder mit der Kapazität von 10 Zeichen erstellen
StringBuilder sb = new StringBuilder(10);
// Ein Sub-String einfügen.
sb.Append("Hello...");
Console.WriteLine("- sb after appends a string: " + sb);
// Ein Zeichen einfügen.
char c = '!';
sb.Append(c);
Console.WriteLine("- sb after appending a char: " + sb);
// Ein String in der Index 5 einfügen.
sb.Insert(8, " CSharp");
Console.WriteLine("- sb after insert string: " + sb);
// Ein Sub-String bei der Index 5 mit 3 Zeichen löschen.
sb.Remove(5, 3);
Console.WriteLine("- sb after remove: " + sb);
// string im StringBuilder entnehmen.
String s = sb.ToString();
Console.WriteLine("- String of sb: " + s);
Console.Read();
}
}
}
Das Ergebnis der Beispieldurchführung
- sb after appends a string: Hello...
- sb after appending a char: Hello...!
- sb after insert string: Hello... CSharp!
- sb after remove: Hello CSharp!
- String of sb: Hello CSharp!
Anleitungen C#
- Vererbung und Polymorphismus in C#
- Was ist erforderlich, um mit C# zu beginnen?
- Schnelles Lernen C# für Anfänger
- Installieren Sie Visual Studio 2013 unter Windows
- Abstrakte Klasse und Schnittstelle in C#
- Installieren Sie Visual Studio 2015 unter Windows
- Kompression und Dekompression in C#
- Die Anleitung zu C# Multithreading Programmierung
- Die Anleitung zu C# Delegate und Event
- Installieren Sie AnkhSVN unter Windows
- C# Programmierung für Team mit Visual Studio und SVN
- Installieren Sie .Net Framework
- Zugriffsmodifikator (Access Modifier) in C#
- Die Anleitung zu C# String und StringBuilder
- Die Anleitung zu C# Property
- Die Anleitung zu C# Enum
- Die Anleitung zu C# Structure
- Die Anleitung zu C# Generics
- Ausnahmen und Ausnahmebehandlung in C#
- Die Anleitung zu C# Date Time
- Manipulieren von Dateien und Verzeichnissen in C#
- Die Anleitung zu C# Stream - binäre Ströme in C#
- Die Anleitung zu C# Reguläre Ausdrücke
- Stellen Sie in C# eine Verbindung zur SQL Server-Datenbank her
- Arbeiten Sie mit der SQL Server-Datenbank in C#
- Stellen Sie in C# eine Verbindung zur MySQL-Datenbank her
- Arbeiten Sie mit der MySQL-Datenbank in C#
- Stellen Sie ohne Oracle Client eine Verbindung zur Oracle-Datenbank in C# her
- Arbeiten Sie mit der Oracle-Datenbank in C#
Show More