IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Caractères spéciaux dans une string


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 23
    Par défaut Caractères spéciaux dans une string
    Salut à tous,

    Je cherche à faire une méthode m'indiquant combien de caractères spéciaux (non alphanumériques) contient la chaîne de caractères passée en paramètre? Bien sur sans les énumérer un par un mais plutôt une expression régulière pour caractères spéciaux.

    Merci d'avance

  2. #2
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Ben je sais pas mais moi je ferais tout de même comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int i = 0;
          foreach (char c in maChaine)
          {
            if (!char.IsLetterOrDigit(c))
            {
              i++;
            }
          }

  3. #3
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Citation Envoyé par ppphil Voir le message
    Ben je sais pas mais moi je ferais tout de même comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int i = 0;
          foreach (char c in maChaine)
          {
            if (!char.IsLetterOrDigit(c))
            {
              i++;
            }
          }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var n = maChaine.Count(c=>!char.IsLetterOrDigit(c));

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var n = maChaine.Count(c=>!char.IsLetterOrDigit(c));
    ça s'appelle la classe.

  5. #5
    Membre émérite Avatar de ppphil
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    617
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2007
    Messages : 617
    Par défaut
    Citation Envoyé par h2s84 Voir le message
    ça s'appelle la classe.
    La classe effectivement.
    Moins rapide tout de même...
    Pour les grosses string, s'entend

  6. #6
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Moins rapide?
    J'aimerais bien savoir pourquoi! Ca fait quasiment la même chose que ton code

    IL de la mienne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    IL_0005:  stloc.0     
    IL_0006:  ldloc.0     
    IL_0007:  ldsfld      UserQuery.CS$<>9__CachedAnonymousMethodDelegate1
    IL_000C:  brtrue.s    IL_001F
    IL_000E:  ldnull      
    IL_000F:  ldftn       UserQuery.<RunUserAuthoredQuery>b__0
    IL_0015:  newobj      System.Func<System.Char,System.Boolean>..ctor
    IL_001A:  stsfld      UserQuery.CS$<>9__CachedAnonymousMethodDelegate1
    IL_001F:  ldsfld      UserQuery.CS$<>9__CachedAnonymousMethodDelegate1
    IL_0024:  call        System.Linq.Enumerable.Count
    IL_0029:  stloc.1  
     
    <RunUserAuthoredQuery>b__0:
    IL_0000:  ldarg.0     
    IL_0001:  call        System.Char.IsLetterOrDigit
    IL_0006:  ldc.i4.0    
    IL_0007:  ceq         
    IL_0009:  ret
    La tienne:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    IL_0005:  stloc.0     
    IL_0006:  ldc.i4.0    
    IL_0007:  stloc.1     
    IL_0008:  ldloc.0     
    IL_0009:  stloc.3     
    IL_000A:  ldc.i4.0    
    IL_000B:  stloc.s     04 
    IL_000D:  br.s        IL_002A
    IL_000F:  ldloc.3     
    IL_0010:  ldloc.s     04 
    IL_0012:  callvirt    System.String.get_Chars
    IL_0017:  stloc.2     
    IL_0018:  ldloc.2     
    IL_0019:  call        System.Char.IsLetterOrDigit
    IL_001E:  brtrue.s    IL_0024
    IL_0020:  ldloc.1     
    IL_0021:  ldc.i4.1    
    IL_0022:  add         
    IL_0023:  stloc.1     
    IL_0024:  ldloc.s     04 
    IL_0026:  ldc.i4.1    
    IL_0027:  add         
    IL_0028:  stloc.s     04 
    IL_002A:  ldloc.s     04 
    IL_002C:  ldloc.3     
    IL_002D:  callvirt    System.String.get_Length
    IL_0032:  blt.s       IL_000F
    Pour le coup, je pense que ca se joue vraiment à la nanoseconde!

  7. #7
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 23
    Par défaut
    merci à tous je n'avais pas trouvé la méthode IsLetterOrDigit

    Bonne continuation

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Caractères spéciaux dans une variable String
    Par vbnet3 dans le forum NetBeans
    Réponses: 3
    Dernier message: 17/06/2011, 09h52
  2. Réponses: 7
    Dernier message: 24/05/2011, 17h45
  3. Affichage caractéres spéciaux dans une alert.
    Par nebule dans le forum Général JavaScript
    Réponses: 13
    Dernier message: 05/05/2006, 13h51
  4. [RegEx] caractère spéciaux dans une chaine
    Par BigBarbare dans le forum Langage
    Réponses: 3
    Dernier message: 12/04/2006, 11h53
  5. Caractères spéciaux dans une boite de dialogue
    Par Rafiki dans le forum Général JavaScript
    Réponses: 22
    Dernier message: 09/03/2006, 14h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo