Bonjour
quand je fait in Integer.parseInt("058589"), j'ai le retour 58589. Or je souhaiterais garder le "0". et plus généralement tous les chiffres de ma string.
Comment faire.
Merci de votre retour.
Bonjour
quand je fait in Integer.parseInt("058589"), j'ai le retour 58589. Or je souhaiterais garder le "0". et plus généralement tous les chiffres de ma string.
Comment faire.
Merci de votre retour.
Bonsoir,
Pourquoi le mettre dans un int dans ce cas
Salut, tu peux utiliser ce bout de code:
Il te reste plus qu'à créer un algo pour connaitre la longueur de ta chaine de caractère. Ensuite créer un String de (la longueur de ton String)*0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 DecimalFormat df = new DecimalFormat("00000"); System.out.println(df.format(mon_nombre));
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Je juge pas l'utilité de ce code, je lui ai juste dis comment faire pour avoir ce qu'il veut.
Bonjour
Avec unJe juge pas l'utilité de ce code, je lui ai juste dis comment faire pour avoir ce qu'elle veut.
on renvoie une valeur entière, pas une chaine de caractère, juste une représentation binaire d'une valeur numérique.
Code : Sélectionner tout - Visualiser dans une fenêtre à part Integer.parseInt("058589")
Je comprends pas le sujet de ce topic. ni son aboutissement.
Cordialement
Page sur Developpez : http://pbriand.developpez.com
Et moi je ne comprends pas pourquoi vous bloquez sur ce sujet
Il désir un entier sous la même forme que sa chaine de caractère. On sait pas ce qu'il souhaite en faire, donc il est difficile de juger si ce code est inutile ou pas
Ce qu'on comprend, c'est que :
- il a en entrée une chaîne de caractère.
- il veut la transformer en entier "formaté", c'est à dire en chaîne de caractère, avec le même format.
Je propose le code suivant qui est très performant pour faire ça :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2String chaineFormattee = "058589";
Ça risque de virer au troll tel que c'est parti
Integer.parseInt(String) convertit une chaîne de caractère en entier et là, le zéro de gauche n'étant pas significatif, il n'est pas affiché.
La représentation "0123456" est une représentation chaîne de caractères d'un entier et là, il faut utiliser un formateur (comme DecimalFormat) pour avoir le résultat attendu.
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
la discussion date de 2011... je pense qu'on peut clore le débat
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Surtout que c'est faux :
affiche 668 !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 public static void main(String[] args) { int valeur = 01234; System.out.println(valeur); }
Et oui, un int qui commence par 0 est en octal : le 0 n'est donc pas ignoré, mais à sa propre signification.
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Oui mais là, c'est le compilateur qui le fait.
Dans l'exemple, c'est Integer.parseInt("012345") et là, on renvoie bien 12345
N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
Pas parce que TU ne comprend pas que c'est forcément débile -_- ! Si tu as une base de donnée avec des clefs d'identifications .... Tu sais que tu auras, avec le temps, un grand nombre d'ID. Pourquoi ne pas afficher les 0 avant ?
Pour avoir une validation de ID, exclusivement numérique, valide en calculant le length, tes IDs doivent tous avoir le meme length. Autant ton ID #00001 que ton ID #99999 !
Et même si TU trouves que ca ne fais toujours pas de sens, si c'est se que le client souhaite ??? Tu vas refuser ?
Pour ma part, j'ai chercher se Topic car dans mon projet (étudiant) la consigne est d'avoir un ID a 5 chiffres ... Si tel est pas le cas, je dois afficher un message d'erreur ! Si j'ai un ID avec des 0 dabord, la validation indique qu'il n'a pas 5 chiffres ! Alors, moi, ça question je la trouve pertinente dans le cadre de mon projet !
Salut,
C'était peut-être dit un peu crûment, mais il est effectivement absurde de convertir une String en int pour la reformater ensuite en String pour remettre le ou les 0 qu'on aurait perdus lors de la conversion en int. Il suffit de conserver la String d'origine et de ne rien faire.
Par ailleurs, un identifiant comme tu le décris n'est pas un int, mais une chaîne : le fait qu'elle ne contienne que des chiffres n'en fait pas un int, justement parce que tous les signes ont leur importance au final et que de toute manière le but d'un id n'est pas de servir dans des calculs, mais uniquement pour identifier de façon unique un produit ou quelque chose dans le genre. Ceci est différent d'un nombre résultant d'un calcul qu'on voudrait afficher dans un format particulier (on utiliserait dans ce cas un formatage pour afficher le nombre comme voulu (DecimalFormat, String.format, etc.).
Et si tu as besoin de saisir une String ne contenant que des chiffres, au nombre précis de 5, tu peux gérer ça avec une String et faire un contrôle du genre :
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part string.length()==5 && string.matches("\\d+");
On peut même s'assurer qu'il y ait toujours un 0 devant avec 4 chiffres derrière :
Code : Sélectionner tout - Visualiser dans une fenêtre à part string.matches("\\d{5}");
ou toute autre règle de format qu'on voudrait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part string.matches("0\\d{4}");
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Histoire de rajouter mon grain de sel a cette discussion abracadabrante de 2011 deja uppee en 2015 : tu sais que tu cherches une id a 5 chiffres des le debut donc tu connais le nombre de digit necessaires dans la chaine de sortie donc tu peux padder avec des zero supplementaires dans ton formatter si besoin.
L'erreur du posteur initial est surtout de ne pas avoir pige qu'il y a une tres grosse distinction entre la valeur numerique et sa representation en chaine de texte. Le 0 en prefixe n'existe pas dans la valeur numerique ; il n'est pas preserve. Il aurait fallu qu'il sauvegarde le nombre de digits au moment de la conversion dans une seconde variable et qu'il le reutilise lors du formattage du nombre pour padder avec des 0.
Merci de penser au tag quand une réponse a été apportée à votre question. Aucune réponse ne sera donnée à des messages privés portant sur des questions d'ordre technique. Les forums sont là pour que vous y postiez publiquement vos problèmes.
suivez mon blog sur Développez.
Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook
Carrément. Si le client te payes, c'est parce que tu comprend mieux l'informatique que lui. Donc, quand il te soumet des abbérations technique (genre stocker des id sous forme de string dans la db avec un nombre de digits déterminé alors que ce qu'il veut vraiment sans en avoir conscience c'est juste un format d'affichage), il est de TON DEVOIR de (poliment) le conduire à changer d'avis.Sinon c'est de la négligence voir une faute professionnelle.
"Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"
Confucius, 448 av. J-C
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager