Nouveau

Comment convertir des chaînes en nombres et vice versa en Java

Comment convertir des chaînes en nombres et vice versa en Java


We are searching data for your request:

Forums and discussions:
Manuals and reference books:
Data from registers:
Wait the end of the search in all databases.
Upon completion, a link will appear to access the found materials.

Généralement, dans une interface utilisateur graphique, des champs de texte attendent de l'utilisateur qu'il entre une valeur numérique. Cette valeur numérique aboutira dans un objet String, ce qui n’aidera pas vraiment votre programme si vous voulez effectuer un calcul arithmétique. Heureusement, il existe des classes wrapper qui fournissent des méthodes pour convertir ces valeurs String en nombres et la classe String dispose d'une méthode pour les reconvertir.

Classes d'emballage

Les types de données primitifs qui traitent des nombres (octets, entiers, doubles, flottants, longs et courts) ont tous des équivalents de classe. Ces classes sont appelées classes wrapper car elles prennent un type de données primitif et l'entourent des fonctionnalités d'une classe. Par exemple, la classe Double aura une valeur double comme données et fournira des méthodes pour manipuler cette valeur.

Toutes ces classes wrapper ont une méthode appelée valueOf. Cette méthode prend une chaîne en tant qu'argument et renvoie une instance de la classe wrapper. Par exemple, supposons que nous ayons une chaîne avec la valeur dix:

Numéro de chaîne = "10";

Avoir ce nombre sous forme de chaîne ne nous étant d'aucune utilité, nous utilisons la classe Integer pour le convertir en objet Integer:

Nombre entier converti = Nombre entier.valeurOf (nombre);

Maintenant, le nombre peut être utilisé comme un nombre et non comme une chaîne:

NombreConverti = NombreNuméroté + 20;

Vous pouvez également faire en sorte que la conversion passe directement à un type de données primitif:

int converterNumber = Integer.valueOf (number) .intValue ();

Pour les autres types de données primitifs, il vous suffit de positionner le bon encapsuleur classe-octet, entier, double, flottant, long court.

Remarque: Vous devez vous assurer que la chaîne peut être analysée dans le type de données approprié. Sinon, vous obtiendrez une erreur d'exécution. Par exemple, essayez de convertir "dix" en un entier:

Numéro de chaîne = "dix";
int converterNumber = Integer.valueOf (number) .intValue ();

produira une exception NumberFormatException car le compilateur n'a aucune idée que "dix" est censé être 10.

Plus subtilement, la même erreur se produira si vous oubliez qu'un "int" ne peut contenir que des nombres entiers:

Numéro de chaîne = "10.5";
int converterNumber = Integer.valueOf (number) .intValue ();

Le compilateur ne tronquera pas le nombre, il se contentera de penser qu'il ne rentre pas dans un "int" et qu'il est temps de lancer une exception NumberFormatException.

Conversion de nombres en chaînes

Pour transformer un nombre en chaîne, le même type de motif est utilisé, car la classe String possède également une méthode valueOf. Il peut prendre n'importe quel numéro de type de données primitif comme argument et générer une chaîne:

int numberTwenty = 20;

Chaîne convertie = String.valueOf (numberTwenty);

qui met "20" en tant que valeur de chaîne convertie.

ou vous pouvez utiliser la méthode toString de n'importe laquelle des classes wrapper:

Chaîne convertie = Integer.toString (numberTwenty);

La méthode toString est commune à tous les types d'objet. La plupart du temps, il ne s'agit que d'une description de l'objet. Pour les classes wrapper, cette description correspond à la valeur réelle qu'elles contiennent. Dans ce sens, la conversion est un peu plus robuste. Si la classe Double devait être utilisée à la place de l'entier:

Chaîne convertie = Double.toString (numberTwenty);

le résultat ne provoquerait pas d'erreur d'exécution. La variable convertie contiendrait la chaîne "20.0".

Il existe également un moyen plus subtil de convertir des nombres lorsque vous concaténez des chaînes. Si une chaîne devait être construite comme:

String aboutDog = "Mon chien a" + numéro deux ans + "ans.";

la conversion du nombre int.2 est automatiquement effectuée.


Video, Sitemap-Video, Sitemap-Videos