Substring avec Swift 3.0

Bonjour à  tous,


 


Voici la question à  10 centimes du mardi... J'ai la chaine suivante : "Hello Substring" je souhaiterais récupérer la sous chaine "Hello". Mon code fonctionnait sur Swift 2 mais je ne trouve pas l'équivalent sur la version 3. Comment faut t'il si prendre ?


 


Je vous remercie pour vos réponses.  :D


Réponses

  • Je ne sais pas comment tu faisais sous Swift 2.0 mais voilà  une solution:



    let str = "Hello Substring"
    str.components(separatedBy: " ")[0]
  • JérémyJérémy Membre
    septembre 2016 modifié #3

    En fait ma question est très mal posée.  ::)


     


    Je ne cherche pas à  découper une chère en fonction d'un caractère mais à  récupérer les n premiers caractères d'une chaine. Sur mon exemple précèdent, si n = 7 je dois avoir en retour : "Hello S". 


  • DrakenDraken Membre
    septembre 2016 modifié #4

    T'as essayé avec substringWithRange ?


  • heliohelio Membre
    septembre 2016 modifié #5

    Tu peux utiliser la méthode index sur la chaine de caractère.




    .index(i: String.Index, offsetBy: String.IndexDistance)


  • T'as essayé avec substringWithRange ?




     


    Oui justement c'est sur ça que je cale. Je passe à  côté de quelque chose d'idiot surement...

  • DrakenDraken Membre
    septembre 2016 modifié #7

    Trouvé !



    let blabla = "Hello Substring"
    let bla = String(blabla.characters.prefix(7))
    print (bla)




     


    Hello S




  •  


    Trouvé !



    let blabla = "Hello Substring"
    let bla = String(blabla.characters.prefix(7))
    print (bla)





    Pas mal !


    Si je puis me permettre utiliser utf16 au lieu de characters sera un peu plus rapide (si c'est réellement un soucis) et fonctionnera exactement comme les méthodes proposées par NSString.

  • DrakenDraken Membre
    septembre 2016 modifié #9


     



    let blabla = "Hello Substring"
    let bla = String(blabla.utf16.prefix(7))
    print (bla)


     



     


    Optional("Hello S")



     


     


    C'est presque pareil, mais retourne un optional.





  •  



    let blabla = "Hello Substring"
    let bla = String(blabla.utf16.prefix(7))
    print (bla)


     


     


     


    C'est presque pareil, mais retourne un optional.




    Ah oui j'avais pas vu dans la playground que ça faisait un optional (ce qui est logique). Pour le coup ta méthode est meilleure alors.

  • Merci Draken ! 


  • Un truc du genre aussi.



    var template = "Hello String"
    let sub = template.substring(to: template.characters.index(template.characters.startIndex, offsetBy: 7));
Connectez-vous ou Inscrivez-vous pour répondre.