IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > .NET Framework > Chaines de caractères et formatage des objets
        Comment ajouter un retour à la ligne ?
        Comment spécifier un caractère nul ?
        Comment retourner une sous-chaine à partir de la premiere occurrence d'une chaine donnée ?
        Comment retourner une sous-chaine à partir de la premiere occurrence d'une chaine donnée à l'aide des méthodes d'extension ?
        Comment retourner une sous-chaine à partir de la derniere occurrence d'une chaine donnée ?
        Comment retourner une sous-chaine à partir de la derniere occurrence d'une chaine donnée à l'aide des méthodes d'extension ?
        Comment inverser le contenu d'une chaine ?
        Comment inverser le contenu d'une chaine à l'aide des méthodes d'extension?
        Comment initialiser une chaine avec n occurrences d'un meme caractère ?
        Comment remplacer un mot par un autre sans tenir compte de la casse grâce aux expressions régulières ?
        Comment retirer les caractères diacritiques (accents) d'une chaine de caractères ?
        Comment écrire un nombre littéral sous forme hexadécimale ?
        Comment convertir une valeur numérique en binaire, hexadécimal ou octal ?



Comment ajouter un retour à la ligne ?
auteurs : dev01, tomlev
Il suffit d'utiliser la propriété Environment.NewLine :

          
string monTexte = "blablabla" + Environment.NewLine + "blablabla ...";

        
Il vaut mieux utiliser cette propriété que d'écrire explicitement les caractères "\n" ou "\r\n", car le retour à la ligne "standard" est différent selon les systèmes d'exploitation. Environment.NewLine renvoie toujours le retour à la ligne standard du système d'exploitation actuel.


Comment spécifier un caractère nul ?
auteur : pharaonix
char monCaractère = '\0';
C'est aussi simple que cela


Comment retourner une sous-chaine à partir de la premiere occurrence d'une chaine donnée ?
auteur : pvialatte

          
public string Strstr(string haystack, string needle)
{
    int firstIndex = haystack.IndexOf(needle);
    
    return haystack.Substring(firstIndex); 
}

        

Comment retourner une sous-chaine à partir de la premiere occurrence d'une chaine donnée à l'aide des méthodes d'extension ?
auteur : SaumonAgile

          
public static string Strstr(this string haystack, string needle)
{
    int firstIndex = haystack.IndexOf(needle);
    
    return haystack.Substring(firstIndex); 	
}

        

Comment retourner une sous-chaine à partir de la derniere occurrence d'une chaine donnée ?
auteur : pvialatte

          
public static string StrstrRev(string haystack, string needle)
{
    int firstIndex = haystack.LastIndexOf(needle);
    return haystack.Substring(firstIndex); 
}

        

Comment retourner une sous-chaine à partir de la derniere occurrence d'une chaine donnée à l'aide des méthodes d'extension ?
auteur : SaumonAgile

          
public static string StrstrRev(this string haystack, string needle)
{	
    int firstIndex = haystack.LastIndexOf(needle);
    return haystack.Substring(firstIndex); 	
}

        

Comment inverser le contenu d'une chaine ?
auteur : pvialatte

          
public string Reverse(string input)
{
    char[] inputArray = input.ToCharArray();
    Array.Reverse(inputArray);
    return new string(inputArray); 


        

Comment inverser le contenu d'une chaine à l'aide des méthodes d'extension?
auteur : SaumonAgile

          
public static void Reverse(this string input)
{
    char[] inputArray = input.ToCharArray();
    Array.Reverse(inputArray);
    return new string(inputArray); 
}

        

Comment initialiser une chaine avec n occurrences d'un meme caractère ?
auteur : pvialatte

          
string chaine = new string('c', 10);

        

Comment remplacer un mot par un autre sans tenir compte de la casse grâce aux expressions régulières ?
auteurs : Webman, tomlev
On utilise pour cela le caractère de contrôle "\b", qui indique une limite de mot, et l'option IgnoreCase.

Un exemple vaut mieux qu'un long discours :

          

using System.Text.RegularExpressions;
...          

	string monTexte = "Une astuce de dvp.com ! Une astuce de DVP.com !";

	// Paramétrage de notre expression régulière :
	// Ici on spécifie que l'on ne veut pas tenir compte dela casse du
	// texte dans nos remplacements.
	Regex maRegEx = new Regex("\bdvp.com\b", RegexOptions.IgnoreCase);

	// Remplacement des occurrences de "dvp.com" par "Developpez.com"
	monTexte = maRegEx.Replace(monTexte, "Developpez.com");

        

Comment retirer les caractères diacritiques (accents) d'une chaine de caractères ?
auteurs : cardi, tomlev
Il faut pour cela utiliser les propriétés de l'encodage Unicode (qui est la représentation interne des chaines en .NET). En Unicode un caractère accentué est en fait composé de 2 caractères : le caractère de base et l'accent. En normalisant la chaine de caractères, on peut séparer ces caractères de façon à pouvoir enlever l'accent :

          
using System.Globalization;

class Program
{
    static void Main(string[] args)
    {
        System.Console.Write("Entrez votre chaine de caractères : ");
        string strResultat = RemoveDiacritics(System.Console.ReadLine());
        System.Console.WriteLine("Résultat : " + strResultat);

        System.Console.Read();
    }

    public static string RemoveDiacritics(string input)
    {
        string formD = input.Normalize(NormalizationForm.FormD);
		StringBuilder sbNoDiacritics = new StringBuilder();
		foreach (char c in formD)
		{
			if (CharUnicodeInfo.GetUnicodeCategory(c) != UnicodeCategory.NonSpacingMark)
				sbNoDiacritics.Append(c);
		}
        string noDiacritics = sbNoDiacritics.ToString().Normalize(NormalizationForm.FormC);
        return noDiacritics;
    }
}
        

Comment écrire un nombre littéral sous forme hexadécimale ?
auteurs : cardi, tomlev
Il suffit de le préfixer par "0x" pour indiquer au compilateur qu'il s'agit d'un nombre hexadécimal.

          
      // maValeurHexa contient 64
      int maValeurHexa = 0x40;
      
        

Comment convertir une valeur numérique en binaire, hexadécimal ou octal ?
auteurs : Merlin, tomlev
Il faut utiliser la version de Convert.ToString qui prend en second paramètre la base de destination :

          
int dec = 510;
string bin = Convert.ToString(val, 2);
string oct = Convert.ToString(val, 8);
string hex = Convert.ToString(val, 16);
Console.WriteLine("Décimal     : {0}", dec);
Console.WriteLine("Binaire     : {0}", bin);
Console.WriteLine("Octal       : {0}", oct);
Console.WriteLine("Hexadécimal : {0}", hex);

        
Pour l'hexadécimal, il est également possible d'utiliser le spécificateur de format X, suivi d'un spécificateur de précision pour indiquer le nombre minimum de chiffres (le nombre sera préfixé par des 0 s'il n'est pas assez long) :

          
Console.WriteLine("Hexadécimal : {0:X4}", dec);

        
lien : fr System.Convert.ToString(Int32, Int32) (MSDN)


Consultez les autres F.A.Q's


Valid XHTML 1.0 TransitionalValid CSS!

Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2010 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.