OVH Cloud OVH Cloud

générer un int à partir d'un String

9 réponses
Avatar
LR
Salut,

J'ai une application qui gère des objets business qui héritent tous d'une
classe mère qui propose un attribut "id" de type int. Je dois ajouter la
gestion d'un objet business dont l'attribut id est un type String. Après
moulte reflexion, je pense que le meilleur moyen serait de générer un int à
partir de la String.

Existe-t-il quelque chose qui fait ça ? Est-ce que je peux me contenter de
convertir chaque caractère en code ascii, de les concaténer dans une string
et de faire Integer.parseInt ?

Merci d'avance pour vos conseils
Lilian

9 réponses

Avatar
Thibal
LR wrote:

Salut,

J'ai une application qui gère des objets business qui héritent tous d'une
classe mère qui propose un attribut "id" de type int. Je dois ajouter la
gestion d'un objet business dont l'attribut id est un type String. Après
moulte reflexion, je pense que le meilleur moyen serait de générer un int à
partir de la String.

Existe-t-il quelque chose qui fait ça ? Est-ce que je peux me contenter de
convertir chaque caractère en code ascii, de les concaténer dans une string
et de faire Integer.parseInt ?

Merci d'avance pour vos conseils
Lilian


Ancien développeur C/C++ ? ;)

String.valueOf(int i) pour faire int -> String
Integer.parseInt(String s) pour faire String -> int

Avatar
LR
J'ai une application qui gère des objets business qui héritent tous d'une
classe mère qui propose un attribut "id" de type int. Je dois ajouter la
gestion d'un objet business dont l'attribut id est un type String. Après
moulte reflexion, je pense que le meilleur moyen serait de générer un int
à partir de la String.

Existe-t-il quelque chose qui fait ça ? Est-ce que je peux me contenter
de convertir chaque caractère en code ascii, de les concaténer dans une
string et de faire Integer.parseInt ?


Ancien développeur C/C++ ? ;)


non pourquoi ?

String.valueOf(int i) pour faire int -> String
Integer.parseInt(String s) pour faire String -> int


mais merci quand même :-)


Avatar
Thibal
LR wrote:
J'ai une application qui gère des objets business qui héritent tous d'une
classe mère qui propose un attribut "id" de type int. Je dois ajouter la
gestion d'un objet business dont l'attribut id est un type String. Après
moulte reflexion, je pense que le meilleur moyen serait de générer un int
à partir de la String.

Existe-t-il quelque chose qui fait ça ? Est-ce que je peux me contenter
de convertir chaque caractère en code ascii, de les concaténer dans une
string et de faire Integer.parseInt ?




Ancien développeur C/C++ ? ;)



non pourquoi ?


Bah en général quand on développe en C on prend l'habitude de manipuler
les caractères par leur code Ascii, alors que là c'était vraiment se
compliquer la vie...


String.valueOf(int i) pour faire int -> String
Integer.parseInt(String s) pour faire String -> int



mais merci quand même :-)


^^



Avatar
François CHEIPPE
String.valueOf(int i) pour faire int -> String
autre manière :

i + ""

Avatar
Symon
Salut,

Pour "additioner deux String" (erk). Te fait pas de noeud au cerveau :

String a = "1";
String b = "1";

try {
int resultat = Integer.parseInt(a) + Integer.parseInt(b);
System.out.println(resultat); // output "2" sur la sortie standard
} catch (NumberFormatException e) {
System.err.println("String au mauvais format !");
// Gestion de l'erreur
}

A+

Symon

LR wrote:
Salut,

J'ai une application qui gère des objets business qui héritent tous d'une
classe mère qui propose un attribut "id" de type int. Je dois ajouter la
gestion d'un objet business dont l'attribut id est un type String. Après
moulte reflexion, je pense que le meilleur moyen serait de générer un int à
partir de la String.

Existe-t-il quelque chose qui fait ça ? Est-ce que je peux me contenter de
convertir chaque caractère en code ascii, de les concaténer dans une string
et de faire Integer.parseInt ?

Merci d'avance pour vos conseils
Lilian




Avatar
my name
François CHEIPPE wrote:
String.valueOf(int i) pour faire int -> String


autre manière :
i + ""
Se compile en


StringBuffer sb = new StringBuffer();
sb.append(i);
sb.append("");
return sb.toString();

Probablement moins efficace qu'un appel direct à String.valueOf(i)...

Arnaud


Avatar
Olivier Thomann
Probablement moins efficace qu'un appel direct à String.valueOf(i)...
Le mieux est encore:

Integer.toString(i);
--
Olivier

Avatar
Patrick Gras
"LR" wrote in message
news:41dcff22$
Salut,

J'ai une application qui gère des objets business qui héritent tous d'une
classe mère qui propose un attribut "id" de type int. Je dois ajouter la
gestion d'un objet business dont l'attribut id est un type String. Après
moulte reflexion, je pense que le meilleur moyen serait de générer un int
à

partir de la String.

Existe-t-il quelque chose qui fait ça ? Est-ce que je peux me contenter de
convertir chaque caractère en code ascii, de les concaténer dans une
string

et de faire Integer.parseInt ?

Merci d'avance pour vos conseils
Lilian




Hello,

La question est de savoir quel est le contenu du ton id de type String, donc
de savoir si il y a un mapping 'evident' entre cette String et un int.

Parce-que en concaténant des codes ascii ce sera vite plus grand qu'un
int...

Ensuite est-ce que tu ne peux pas simplement utiliser l'id de type int en
interne et afficher celui de type int pour l'utilisateur ?

-Patrick

Avatar
LR
J'ai une application qui gère des objets business qui héritent tous d'une
classe mère qui propose un attribut "id" de type int. Je dois ajouter la
gestion d'un objet business dont l'attribut id est un type String. Après
moulte reflexion, je pense que le meilleur moyen serait de générer un int
à

partir de la String.

Existe-t-il quelque chose qui fait ça ? Est-ce que je peux me contenter
de
convertir chaque caractère en code ascii, de les concaténer dans une
string

et de faire Integer.parseInt ?

Merci d'avance pour vos conseils
Lilian




Hello,

La question est de savoir quel est le contenu du ton id de type String,
donc
de savoir si il y a un mapping 'evident' entre cette String et un int.

Parce-que en concaténant des codes ascii ce sera vite plus grand qu'un
int...

Ensuite est-ce que tu ne peux pas simplement utiliser l'id de type int en
interne et afficher celui de type int pour l'utilisateur ?

-Patrick


L'id de type string est une adresse email. Donc effectivement risque fort de
dépasser la capaciter d'un int...