Le Tutoriel de C# String et de StringBuilder
1. Héritage hiérarchique
Quand vous travaillez avecdes données textuelles, CSharp vous fournit 2 classes Stringet StringBuilder. Quand vous travaillez avec Big Data, vous devez utiliser StringBuilder pour optimiser l' efficacité. Les 2 classes ont fondamentalement des points similaires.
- String est immuable (immutable)(ce concept va être détailler dans ce document). String ne permet pas l'existance des sous- classes.
- StringBuilder est muable (mutable)
2. Concepts muable & immuable
Observez une illustration:
MutableClassExample.cs
namespace StringTutorial
{
// Ceci est une classe qui a un champ: 'Value'.
// Si vous avez un objet de cette classe.
// Vous pouvez affecter une nouvelle valeur au champ 'Valeur'
// via la méthode SetNewValue (int).
// Donc, c'est une classe mutable (mutable).
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
{
// Cette classe a 2 champs (field) : 'Value' & 'Name'.
// Si vous avez un objet de cette classe,
// Vous ne pouvez pas assigner une nouvelle valeur à 'Valeur', champ 'Name' de l'extérieur,
// Cela signifie que cette classe est immuable (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 est une classe immuable (immutable), String comprend beaucoup de champs (field), par exemple Length,... mais des valeurs dans ces champs ne changent pas.
3. String et string
Dans C#, parfois vous trouvez que String et string sont utilisés en parallèle. En réalité, elles n'ont pas de différence, string peut être considérée comme un pseudonyme (alias) de System.String (le nom complet comprenant l'espace- nom de la classe String).
La table ci- dessous décrit la liste entière des pseudonyme des classes courantes.
La table ci- dessous décrit la liste entière des pseudonyme des classes courantes.
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 est une classe cruciale de CSharp, et toute personne qui commence avec le programmme CSharp doit utiliser l'instruction Console.WriteLine() afin d'imprimer une String sur l'écran de Console. Beaucoup de débutants C# ne sont pas concients que String est immuable (immutable) et est fermée (Ne permet pas d'avoir de sous- classes), Chaque changement sur String dont le résultat est la création un nouveau objet String.
** String **
[SerializableAttribute]
[ComVisibleAttribute(true)]
public sealed class String : IComparable, ICloneable, IConvertible,
IEnumerable, IComparable<string>, IEnumerable<char>, IEquatable<string>
Les méthodes de String
Vous pouvez examiner les méthodes de String à:
Ci-dessous sont des méthodes générales de 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
Dans C#, le résultat de chaque modification dans String est la création un nouveau objet String. Alors que StringBuilder comprend une multitude de caractères, cette gamme va être automatiquement remplacée par une autre plus étendue s'il est nécessaire, et copier les caractères depuis l'ancienne gamme. Si vous devez concaténer une multiple de strings, vous devez utiliser StringBuilder, il aide à augmenter l'efficacité du programme. Mais il n'est pas nécessaire si vous concaténez seulement quelques stringss, n'abusez pas de StringBuilder dans ce cas.
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)
{
// Créez un objet StringBuilder
// d'une capacité (capacity) de 10 caractères.
StringBuilder sb = new StringBuilder(10);
// Ajoutez la chaîne Hello.
sb.Append("Hello...");
Console.WriteLine("- sb after appends a string: " + sb);
// Ajoutez un caractère
char c = '!';
sb.Append(c);
Console.WriteLine("- sb after appending a char: " + sb);
// Insérez une chaîne à l'index 5.
sb.Insert(8, " CSharp");
Console.WriteLine("- sb after insert string: " + sb);
// Supprimez la sous-chaîne aux index 5 et 3 caractères.
sb.Remove(5, 3);
Console.WriteLine("- sb after remove: " + sb);
// Obtenez une chaîne dans StringBuilder.
String s = sb.ToString();
Console.WriteLine("- String of sb: " + s);
Console.Read();
}
}
}
Les résultats de l'exécution de l'exemple:
- 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!
Tutoriels de programmation C#
- Héritage et polymorphisme en C#
- De quoi avez-vous besoin pour démarrer avec C#?
- Apprenez rapidement à développer en C# pour débutant
- Installer Visual Studio 2013 sur Windows
- Classe abstraite et interface dans C#
- Installer Visual Studio 2015 sur Windows
- Compression et décompression dans C#
- Tutoriel de programmation multithread C#
- Tutoriel C# Delegate et Event
- Installer AnkhSVN sur Windows
- Programmation C# pour l'équipe utilisant Visual Studio et SVN
- Installer .Net Framework
- Modificateur d'accès (Access Modifier) en C#
- Le Tutoriel de C# String et de StringBuilder
- Le Tutoriel de C# Properties
- Le Tutoriel de C# Enum
- Le Tutoriel de C# Structure
- Le Tutoriel de C# Generics
- Tutoriel sur la gestion des exceptions C#
- Le Tutoriel de C# Date Time
- Manipulation de fichiers et de répertoires dans C#
- Tutoriel C# Stream - flux binaire en C#
- Le Tutoriel d'expressions régulières C#
- Se Connecter à la base de données SQL Server dans C#
- Travailler avec la base de données SQL Server dans C#
- Connectez-vous à la base de données MySQL dans C#
- Travailler avec la base de données MySQL dans C#
- Connectez-vous à la base de données Oracle dans CSharp sans Oracle Client
- Utilisation d'une base de données Oracle en utilisant C#
Show More