Problem avec un NSString

adsads Membre
11:02 modifié dans Objective-C, Swift, C, C++ #1
Bonjour,

c'est tout bete comme probleme , mais j'ai des \ en fin de chaine par exemple : eng\
je voudrais le supprimer , et pour cela je fais :
[lng1 stringByReplacingOccurrencesOfString:lng withString:@"\"];

pour vire le \.

seul probleme c'est que @\ est consideree comme une chaine non terminee  ???

ca doit etre tout bete, mais bon....

Merci

Réponses

  • adsads Membre
    11:02 modifié #2
    pardon faute de frappe lng1 = [lng1 stringByReplacingOccurrencesOfString:@\ withString:@";"];
  • muqaddarmuqaddar Administrateur
    11:02 modifié #3
    T'aimes pas les accents ?  >:D

    Bon, pour ton problème essaie ça :

    [lng1 stringByReplacingOccurrencesOfString:@"\\n" withString:@""];
    
  • adsads Membre
    11:02 modifié #4
    T'aimes pas les accents ?

    non c'est le clavier qwerty de mon MB qui ne les aimes pas  ;)

    [lng1 stringByReplacingOccurrencesOfString:@\\n withString:@";"];


    il n'y a plus d'erreur a la compile par contre la fonction ne marche pas car si ca se trouve il cherche vraiment "\\n" et non pas "\"
  • muqaddarmuqaddar Administrateur
    11:02 modifié #5
    On peut avoir le texte original pour bien voir le problème ?
  • adsads Membre
    11:02 modifié #6
    lng1 = @&quot;en&#092;&quot;;<br /><br />lng1 = [lng1 stringByReplacingOccurrencesOfString:@&quot;&#092;&#092;n&quot; withString:@&quot;&quot;];
    


    et on obtient a la sortie toujours : lng1 = @en\;
  • muqaddarmuqaddar Administrateur
    11:02 modifié #7
    lng1 = [lng1 stringByReplacingOccurrencesOfString:@&quot;&#092;&#092;&quot; withString:@&quot;&quot;];
    


    Et là  ?
  • AliGatorAliGator Membre, Modérateur
    11:02 modifié #8
    C'est pas possible que tu aies pu écrire
    lng1 = @&quot;en&#092;&quot;
    
    et que ça compile.

    Le caractère "\" est un caractère d'échappement (et ce d'ailleurs dans plein de langages). Il échappe le caractère qui le suit, pour indiquer que ce caractère suivant est à  prendre au sens littéral ou en tout cas avec un sens particulier.

    Ainsi, le duo de caractères [tt]\"[/tt] permet d'insérer un guillemet littéral dans une chaà®ne, car si tu ne mets que le caractère du guillemet, cela va fermer/terminer la chaà®ne et non insérer ce guillemet littéral dans la chaà®ne.
    NSString* test = @&quot;Mon pseudo c&#39;est &#092;&quot;AliGator&#092;&quot;, et toi ?&quot;;
    


    Du coup, vu que "\" est lui-même un caractère spécial, comme les guillemets qui ferment une chaà®ne, etc, bah lui aussi il faut l'échapper si tu veux insérer un antislash littéral :

    lng1 = [lng1 stringByReplacingOccurrencesOfString:@&quot;&#092;&#092;&quot; withString:@&quot;&quot;];
    
  • adsads Membre
    mai 2010 modifié #9
    Ok Aligator,
    en fait je n'ai pas ecrit directement lng1 = @en\ , ca provient d'un NSScanner....mais falait que je l'illustre...

    et avec @\\ comme le disait aussi muqaddar, ca marche.
Connectez-vous ou Inscrivez-vous pour répondre.