Bienvenue au cours de KnowledgeCity sur la programmation en Java. Je suis Cliff Brozo, Je suis votre instructeur. Aujourd'hui, nous allons tout apprendre sur les cordes, et comment introduire des données dans notre programme. Jetons un coup d'oeil à un certain code. Lorsque Java traite des chaînes, une chaîne est considérée comme une classe et chaque chaîne est un objet dans cette classe. Maintenant, vous pourriez dire et alors ? Eh bien, le problème est que les chaînes sont stockées comme variable de référence. Et cela signifie qu'au lieu de contenir le mot réel qui est dans la chaîne, il contient un pointeur vers une adresse mémoire. Et une deuxième chaîne contiendrait un pointeur différent à une adresse mémoire différente. Maintenant, normalement en programmation, nous utiliserions égal égal pour comparer les choses. Mais dans ce cas, égal égal comparerait les adresses mémoire qui sont évidemment différents et il ne comparerait pas les valeurs des données. Regardons à quoi cela ressemble. Si nous écrivons un programme court à la ligne cinq, J'ai configuré une variable appelée myName, et je lui donne la valeur de mon nom. Ensuite, j'ai configuré une autre chaîne appelée myName2, J'ai lu quelques informations. J'installe mon scanner puis j'imprime une ligne qui indique à l'utilisateur quoi faire. À la ligne neuf, je dis, "Quel est ton nom?" Et la personne à la console, tape leur nom qui est stocké dans myName2. Alors je pose la question, si myName est égal à myName2 puis imprimez myName est égal à myName2, sinon, imprimez myName n'est pas égal à myName2. Et encore une fois, je vais attirer votre attention sur le fait que nous utilisons égal égal ici, qui est une façon de tester l'égalité dans la plupart des langages de programmation. Lorsque le programme se déroule ci-dessous, l'invite apparaît à l'écran, "Quel est ton nom?" C'est à partir de la ligne neuf. Puis à la ligne 10 je tape Cliff, c'est mon nom. Et la ligne 11 dit la falaise que j'ai stockée à la ligne cinq égal à celui que j'ai tapé à la ligne 10. Même s'ils sont exactement les mêmes, le programme me dit que Cliff n'est pas égal à Cliff. Et c'est parce qu'il compare où ces variables sont situés en mémoire, pas ce que sont les données réelles. Un moyen de contourner cela est d'entrer et changer la façon dont Java compare les égaux, utiliser en fait une fonction appelée égal. Maintenant, c'est le même programme que vous regardez sauf à la ligne 11, J'ai changé le fonctionnement du code. Au lieu d'utiliser égal égal, J'ai mis myName.equals puis entre parenthèses monNom2. En utilisant des égaux au lieu de vérifier les emplacements de mémoire qui ne sont évidemment pas égaux, il vérifie les valeurs qui sont réellement contenues dans ces emplacements mémoire. Ainsi, lorsque le programme s'exécute à nouveau, Je tape myName et cette fois il est écrit Cliff est égal à Cliff. Cependant, j'attire votre attention à droite de l'écran. J'ai réexécuté le programme, et cette fois j'ai tapé mon nom en majuscules. Eh bien, cette fois, le programme indiquait avec précision Cliff n'est pas égal à Cliff car on n'est pas en majuscules, et l'autre est et les véritables uns et zéros pour ces lettres sont différents de ceux des majuscules. Regardons ce qui se passe lorsque nous comparons des caractères individuels. Nous avons la possibilité d'appeler sur plusieurs fonctions différentes pour évaluer ce qu'il y a à l'intérieur d'un personnage individuel. je peux tester, est-ce une lettre ? Est-ce un chiffre ? Est-ce un espace blanc ? C'est en majuscule ? C'est en minuscule ? Je peux réellement le convertir en majuscule, je peux le convertir en minuscule ou je peux même convertir la seule lettre à une chaîne où il serait stocké sous la forme d'une chaîne de caractères. Voyons comment cela fonctionne. J'ai écrit un programme qui commence à la ligne cinq et je prends une variable caractère et je l'appelle letterC et je lui attribue la valeur 'C'. Et tu te souviendras que les caractères uniques obtiennent des guillemets simples. La ligne six imprime la première ligne qui dit que le caractère est vide. Et c'est la première ligne de la sortie ici, le personnage est C. Puis à la ligne huit, Je teste pour voir si le caractère est en majuscule, .isUpperCase est une fonction et j'utilise letterC, il connaît la différence entre les majuscules et les minuscules. Dans ce cas, le « C » que j'ai attribué à la ligne cinq est en majuscule. Alors la ligne neuf s'exécute, et c'est exactement ce que je dis dans ma sortie, le caractère C est en majuscule. La partie suivante du programme dit, la lettre C est maintenant égale à, eh bien, ce que je fais, c'est que je change la valeur de la variable letterC en minuscule. J'appelle la fonction minuscule pour mettre en minuscule et cela prend tout ce qui est dans la lettre C, le change en minuscule et le remet tout de suite dans letterC. Juste pour vérification à la ligne 15, J'imprime une ligne qui dit le caractère C a été changé en minuscules. Et c'est la troisième ligne ici le caractère C a été changé en minuscules. Ensuite, je relance mon test aux lignes 17 à 20 pour voir si le caractère est en majuscule. Ce code est exactement le même que les lignes 8 à 11. Mais cette fois, il me dit que le caractère C est en minuscule. Ensuite, je demande à la ligne 22, le caractère est-il une lettre ? Et je passe la fonction .isLetter, la lettre C. Dans ce cas, la lettre C est une lettre et elle s'imprime que c'est une lettre de l'alphabet. A la ligne 27, J'attribue à cette lettre le caractère « 5 ». Maintenant ce n'est pas un nombre '5', il est toujours traité comme un personnage comme c'est entre guillemets simples. J'imprime une ligne juste pour confirmation. Le personnage a été changé en 5. Et puis je demande est-ce que le caractère est un chiffre ? Maintenant, .isDigit ne signifie pas est numérique, ils sont différents. Il connaît juste la différence entre les lettres de l'alphabet et les chiffres de l'alphabet. Dans ce cas, le caractère 5 est un chiffre et c'est la ligne qui s'imprime ici. Je change la lettre C en espace et j'imprime une ligne spécifiant que le caractère a été changé en un blanc. C'est la prochaine dernière ligne ici dans la sortie. Je teste à la ligne 39 pour voir si le caractère est un espace blanc. Je passe la fonction .isWhitespace la lettreC et oui en effet il imprime le caractère est un espace blanc. Maintenant, vous savez comment les chaînes sont stockées. Ils sont stockés en tant qu'emplacements de mémoire, et j'ai besoin d'utiliser le mot point égal plutôt qu'égal égal. Nous avons vu comment nous pouvons saisir des caractères dans notre programme puis testez pour voir de quel type de personnages il s'agit. Nous pouvons les transformer en majuscules, nous pouvons les transformer en minuscules, et nous pouvons les transformer en chaînes. Rejoignez-moi la prochaine fois que nous traiterons des caractères de chaîne, index des chaînes et certaines opérations sur les chaînes. Je te verrai prochainement.