C-SHARP - 4.6 String Avancée
Bonjour a tous et bienvenue dans cette nouvelle video. Dans cette video, nous allons approfondir une notion qu on a vue plus t t dans ce cours. On avait fait une br ve introduction sur les strings ou chaines de caract res si vous voulez sans rentrer dans les details. Commen ons sans plus attendre. Petit rappel le mot string est associe a la classe String du framework DotNet. Ainsi, une chaine est une classe et vous savez egalement que les chaine sont immuables, ce qui signifie qu une fois que vous les avez creees, vous ne pouvez plus les modifier. Je vais a present vous montrez quelques methodes utiles pour travailler avec des chaines, puis je vais vous faire un rappel sur les conversions de chaine en nombre et inversement avec une autre fa on de faire. C est parti, J ai donc classe ces methodes en differents groupes en termes de formatage de votre cha ne. Ici comme vous pouvez le voir, on retrouve les methodes ToLower() et ToUpper() qu on a vu dans une precedente video. La methode ToLower() qui renvoie une copie de notre chaine en convertissant tous les caract res en minuscule. Et inversement, la methode ToUpper() qui renvoie une copie de notre chaine en convertissant tous les caract res en majuscule. Et comme vous pouvez le voir, il y a la methode Trim(). Cette methode permet de supprimer les espaces qu il y a au debut d une chaine et a la fin. Vous voyez ici avec l exemple, on a des espaces au debut et a la fin. Si on applique la methode Trim(), alors a donnera ce resultat. Cette methode vous sera tr s utile lorsque vous allez faire dans vos projets futur un site internet. Il se peut que l utilisateur qui s inscrit sur votre site, mettra un espace devant son nom. Ainsi, si vous creer un algorithme qui trie les clients par ordre alphabetique, il va regarder le premier caract re du nom. Et si c est un espace alors cela peut fausser votre trie vu que c est le premier caract re, c etait un exemple mais il y en a beaucoup d autres. Juste apr s on va voir une methode en rapport avec cet exemple. Petite precision, la methode Trim() ne supprime pas les espaces entre les chaines. Ensuite, si vous souhaitez rechercher un caract re ou un mot dans une chaine et que vous souhaitez avoir son emplacement, vous pouvez utiliser la methode IndexOf pour obtenir l index de la premi re lettre. Soit par exemple ici, on a la chaine Bonjour . Si on utilise la methode indexof() et qu on cherche la lettre n, le programme va nous retourner son emplacement soit 2 vu qu on commence a 0, 0 1 2. Ici on met un caract re, mais c est tout a fait possible avec un mot dans une phrase, la methode nous retourne l emplacement de la premi re occurrence de ce mot c est-a-dire si un mot est present plusieurs fois dans la liste il nous retournera l emplacement du premier qu il trouve. En revanche, s il ne trouve pas la chaine qu on lui donne en param tre parce que je rappelle ce qu on met dans les parenth ses d une fonction/methode se nomme un param tre, on verra a prochainement dans une video. Bah la methode nous retournera -1 pour dire qu il n y est pas. Et pour terminer, il y a la methode LastIndexof m me principe que la premi re, cette fois-ci, comme son nom l indique, last soit dernier. La methode va commencer a parcourir la chaine a partir de la fin et a la premi re occurrence de la chaine qu on lui passe en param tre alors elle retourne son emplacement. Je precise que l index demarrera a partir du debut, vu que la methode commence a la fin on sait jamais a porte a confusion et que vous pensiez que l emplacement sera donne a partir de la fin, non c etait une petite precision au cas o . Si vous souhaitez creer une sous chaine a partir d une chaine deja donnee. J explique, en gros vous avez la chaine Bonjour a tous et bienvenue dans cette nouvelle video. Et vous avez envie d avoir une copie de cette chaine en commen ant par Bienvenue dans cette nouvelle video. Le Bonjour a tous et vous ne voulez pas l incorporer dans cette copie. Bah c est la methode Substring() qui va permettre d effectuer cela. Dans les parenth ses de Substring() on donnera l index soit l emplacement a partir de la o l on veut commencer. Sauf que la on ne va pas s amuser a compter jusqu a l index de bienvenue, ici c est faisable encore mais imaginons on a une longue chaine, un paragraphe. a serait impossible. Bah on a vu une methode pour faire a, je vous laisse reflechir et on verra dans la prochaine video de la demo comment peut-on gerer a. Autre chose, cette methode est une methode qu on appelle surcharger. C est-a-dire qu il existe une methode qui a le m me nom que celle-ci dans la classe sauf qu elle a un nombre de param tre different ou un type de param tre different. Comme vous pouvez le voir, ici la methode Substring() est surcharge. En effet, il en existe une autre qui comporte 2 param tres. Le premier, pareil que la premi re, on donne l index/L emplacement de la o nous voulons commencer la copie et le deuxi me permet de donner une longueur a cette copie parce que la 1 re copie a partir de l emplacement jusqu a la fin tandis que la 2 me si on n a pas envie de copier tout le reste de la chaine, simplement une partie alors ce param tre nous permet de faire cela. Je vais prendre un exemple concret, vous allez comprendre. Vous voyez lorsqu on re oit une notification sur notre telephone. On a qu une seule partie du message s il est trop long, on renvoie qu une seule partie pour pas emb ter l utilisateur, bah ce param tre reprend exactement le m me principe. Si maintenant, vous souhaitez remplacer un caract re ou une sous-chaine/ un mot dans votre chaine alors c est possible avec la methode Replace. Cette methode prend 2 param tres : L element que vous souhaitez changer et l element avec lequel vous voulez le remplacer. Par exemple, si vous souhaitez changer tous les a en e , c est possible. Ou s il y un prenom par exemple Jason et vous voulez le changer dans une chaine par Jibril alors c est faisable avec la methode Replace Ensuite nous avons deux methodes ici. String.IsNullOrEmpty() et string.IsNullOrWhiteSpace() qui prennent en param tre une chiane et regarde si une chaine est totalement vide alors elle renvoie true. Sinon elle renvoie false car elle n est pas vide. La difference entre les 2, c est que la premi re faut que a soit strictement vide. S il y a un espace alors elle nous retourne false car elle ne l est pas strictement tandis que la 2 me s il y a un espace, elle consid re cette chaine comme vide et renvoie true Il existe une methode se nommant split qui prend en param tre un separateur permettant de fractionner une chaine. J explique, cette methode consiste a prendre une chaine, on va la parcourir et a chaque fois qu on va tomber sur le separateur qu on a mis dans les parenth ses est trouve alors on place tout ce qui est avant ce separateur dans un tableau ensuite on continue et on fait la m me chose jusqu a la fin de la chaine. Une fois fini, le programme nous retourne un tableau de chaine, chaque element de ce tableau sera ce qu on a place lorsqu on atteint un separateur. Par exemple, la phrase Bonjour a tous et bienvenue dans cette nouvelle video . Si on applique la methode split sur cette phrase avec espace comme separateur en param tre, on aura ce resultat. On parcoure la chaine, hop un espace on met ce qui est avant dans le tableau soit bonjour, ensuite on re parcoure a ensuite un espace on met le a dans le tableau ainsi de suite jusqu a la fin. Chaque element du tableau sera un mot C est une technique tr s courante pour resumer une longue cha ne en une plus petite. Passons maintenant a la conversion, comme on l a vue dans une video precedente, il est possible de convertir une chaine en un int si on est dans un cas ou on interagie avec un utilisateur il nous donne un nombre, on obtiendra toujours une chaine. M me si cette chaine est un nombre, nous devons le convertir manuellement en nombre. Il y a deux fa ons d y parvenir : La premi re est celle qu on a deja vu precedemment. Et il y en a une deuxi me pour convertir en Int32. La particularite de la 2 me methode c est que si la chaine est vide alors elle retourne la valeur par defaut pour l entier qui est zero. Alors que le int.Parse renvoie une exception. Il est donc plus facile et plus s r de travailler avec Convert.ToInt32. Et enfin, si nous avons un nombre et que nous aimerions le convertir en cha ne, nous pouvons utiliser la methode Tostring sur ce nombre. Nous pouvons appeler cette methode sans aucun argument. Ce qui signifie que vous pouvez obtenir une representation sous forme de cha ne de ce nombre ou vous pouvez le formater a l aide d une cha ne de formatage. Comme vous pouvez le voir ici, on a donne un param tre a cette fonction, le C est une cha ne de format qui est l abreviation de currency. En gros, ici a nous renvoie une valeur monetaire en dollar et que tous les trois chiffres sont separes par une virgule par defaut lorsque vous formatez un nombre en devise. Il va avoir deux nombres decimaux. Si vous ne voulez pas de point decimal, vous pouvez utiliser C 0 sinon vous laissez un simple C Vous pouvez consulter la documentation de Microsoft pour voir la liste des specificateurs de format courants en C#, vous allez sur google, vous tapez Cha nes de format numeriques C# et vous cliquez sur le premier lien. Vous allez tous les retrouverez. Donc voila c est tout pour cette video, dans la prochaine video nous allons faire une demo de tous ce qu on vient de voir ensemble. En tout cas j esp re que cette video vous a plu et que tout a ete clair pour vous. Je vous dis a tout de suite.