0
votes

Utilisation de Java, comment est ce charat (); tourner une corde en int?

Je suis un débutant à Java et j'essaie de me comprendre et de m'expliquer comment cela fonctionne pour la boucle. Les instructions disent que cela convertissait l'équivalent d'unicode numérique pour chaque lettre de chaque mot en utilisant des boucles.

Basé sur ma compréhension La boucle pour la boucle traverse tout le mot en utilisant la longueur de la longueur (), puis la stocke comme int i, qui est transmise dans la parenthèse de I du charat. Charat renvoie chaque caractère dans le mot, puis l'INT le convertit en int qui est stocké comme finalint.

Donc, ma question est d'où vient le numéro Unicode? Comment sait-il que c'est unicode? xxx


2 commentaires

Char est un type numérique qui devrait être représentable comme un caractère. Conversion de INT vient d'expose la valeur numérique sous-jacente.


Ahh, je pense que cela ajoute un peu de clarification! Je vais devoir me rappeler que! Merci!


3 Réponses :


3
votes

Le caractère Java est basé sur Unicode

Les informations de caractère sont basées sur la norme UNICODE, version 6.0.0.

https://docs.oracle.com /javase/7/docs/api/java/lang/character.html

En outre, Char et Int peuvent se convertir. Veuillez vous reporter à: Convertir en vers Char à Java


2 commentaires

Merci beaucoup pour le matériel de référence. Je vais les regarder. J'essaie de trouver la recherche qui couvre cela, mais apparemment, je ne savais pas assez pour savoir ce que je cherchais. Merci beaucoup!! Savez-vous s'il existe une liste de ce que chaque personnage représente dans Unicode? J'ai rencontré beaucoup de listes, mais je ne sais pas lequel est correct.


@Jackietowns Wikipedia a un Liste des caractères Unicode , mais vous pouvez trouver d'autres sites Web plus accessible. La dernière liste officielle est conservée sur le site pour le consortium Unicode: Unicode.org . Il y a environ 138 000 caractères défini jusqu'à présent et en croissance. Si vous êtes un utilisateur Mac, téléchargez le UNICODechecker app.



2
votes

Vérifiez la table ASCII - http://www.asciditable.com/

Votre code transforme une char (dernière colonne) dans sa représentation numérique (première colonne).


6 commentaires

Wow!! Ceci est extrêmement utile !! Je cherchais ce genre de chose !! Pouvez-vous expliquer pourquoi les chiffres sont répertoriés en décembre? Est-ce que cela signifie décimal ou quelque chose? Et pourquoi est-il inscrit comme ça si cela ne vous dérange pas? Et je sais que je pourrais être répété mais où l'Unicode entrera-t-il dans tout cela? Je ne peux pas sembler relier Unicode et ASCII ....


@Jackietowns Oui, décimal (base10), hexadécimal (base 16), octal (base 8) et entité de caractère HTML. Et Unicode est un superset d'ASCII. Voir Wikipedia pour plus d'informations sur tout ça.


@Jackietowns et lisez ceci: Le minimum absolu Chaque développeur doit absolument connaître des ensembles Unicode et de caractères (aucune excuse!)


@Basilbourque merci beaucoup pour tout le matériel de référence !!


Cette référence est pour ceux qui parlent d'ASCII ou d'ANSI et pouvaient être confondus ou incertains comment les utiliser correctement ou comment apprendre Unicode. Les utilisateurs Java n'ont besoin que de lire la documentation Java pour apprendre un Char est une unité de code UTF-16 et que UTF-16 est l'un des codages de plusieurs caractères du jeu de caractères Unicode. Nous savons tous que nous n'utilisons pas ASCII, à droite?


assez pour expliquer le concept que je suppose;)



0
votes

Utilisation de Java, comment est ce Charat () Tournez une chaîne en int?

Le java chaîne modélise une chaîne en tant que tableau de char (pas int ). Donc Charat est simplement d'indexer le tableau (conceptuel). Donc, vous dire que la chaîne est valeurs entier ... représentant des caractères.

(sous la hotte, différentes versions de Java utilisent réellement une variété d'approches de mise en œuvre. Dans certaines versions, la représentation réelle n'est pas un Char [] . Mais c'est tout caché de site ... et vous pouvez l'ignorer en toute sécurité.

Donc, ma question est d'où vient le numéro Unicode?

Il provient du code qui a créé la chaîne ; c'est-à-dire que le code que tel appelé nouvelle chaîne (...) .

  • si la chaîne est construite à partir d'un char [] , on suppose que les caractères de la matrice sont des codesUnits UTF-16 dans une séquence qui est une représentation UTF-16 valide.

  • si la chaîne est construite à partir d'un octet [] , la séquence d'octets est décodé à partir de certains codages spécifiés ou implicites. Si vous fournissez un codage (E.G. Charset ) qui sera utilisé. Sinon, le codage par défaut de l'application est utilisé. De toute façon, le décodeur est responsable de la production d'unicode valide.

    Parfois, ces choses se cassent. Par exemple, si votre application fournit un octet [] codé dans un codage et indique le constructeur Constructeur Il s'agit d'un codage différent, vous êtes susceptible d'obtenir non-sens UNICODE dans le Chaîne . Souvent appelé Mojibake .

    Comment ça sait que c'est unicode?

    chaîne est conçu pour être basé sur unicode.

    Le code qui doit savoir est le code qui forme les cordes d'autres choses. La classe string suppose simplement que le contenu informatique est significatif. (À un niveau ... ça ne se soucie pas. Vous pouvez remplir une chaîne avec malformée UTF-16 ou non-sens total. La chaîne enregistre et reproduit fidèlement le non-sens .)


    Cela dit, il y a une erreur importante dans votre code.

    La méthode charat ne renvoie pas de code de code unicode. Une chaîne est principalement modélisée en tant que séquence de codeUnits UTF-16 et Charat renvoie ceux .

    Les codes de code Unicode sont en fait des nombres dans la plage de plage 0 hex à 10effondt hex . Cela ne rentre pas dans un char ... qui est limité à 0 heex à FFFF hex . .

    utf-16 code des points de code Unicode dans 16 bits CodeUnits. Donc, la valeur renvoyée par Charat représente un point de code unicode entier (pour les points de code dans la plage 0 hex à FFFF hex ) ou le haut ou partie inférieure d'un point de code (pour des points de code plus grande que FFFF hex ).

    Si vous voulez String Pour renvoyer (Terminer) CODEPOINTS UNICODE, vous devez utiliser string.codepointat . Mais il est important de lire attentivement les Javadocs pour comprendre comment la méthode doit être utilisée. (Il peut être plus simple d'utiliser la méthode string.codepoints () .)

    En tout cas, ce que cela signifie que votre code n'attribue pas un code de code unicode à finalint dans tous les cas. Cela fonctionne pour les caractères Unicode dans le BMP (code de code zéro) mais pas les avions de code supérieurs. Il se cassera pour les points de codes Unicode pour Emojis, par exemple.


0 commentaires