Quelle est la différence entre le Double.parseDouble (String) et Double.valueOf(String)?
je veux convertir String
en un type de données Double
. Je ne sais pas si je dois utiliser parseDouble
ou valueOf
.
Quelle est la différence entre ces deux méthodes?
6 réponses
parseDouble
renvoie un double primitif contenant la valeur de la chaîne:
renvoie un nouveau double initialisé à la valeur représentée par la chaîne spécifiée, telle qu'exécutée par la méthode valueOf de la classe Double.
valueOf
renvoie une instance Double, si déjà mise en cache, vous obtiendrez la même instance mise en cache.
renvoie une instance double représentant la valeur double spécifiée. Si une nouvelle instance Double n'est pas nécessaire, cette méthode devrait généralement être utilisé de préférence au constructeur Double( double), comme cette méthode est susceptible de donner une meilleure performance spatiale et temporelle mise en cache des valeurs fréquemment demandées.
pour éviter de créer une nouvelle instance Double objet, vous devez normalement utiliser valueOf
Double.parseDouble(String)
retournera un type primitif double
.
Double.valueOf(String)
renvoie un objet enveloppant de type Double
.
Donc, par exemple:
double d = Double.parseDouble("1");
Double d = Double.valueOf("1");
de plus, valueOf(...)
est une méthode surchargée. Il a deux variantes:
Considérant que parseDouble
est une méthode unique portant la signature suivante:
ils convertissent tous les deux une chaîne de caractères en une valeur double mais où la méthode parseDouble() renvoie la valeur Double primitive, la méthode valueOf() convertit ensuite le double primitif en un objet de classe double wrapper qui contient la valeur double primitive.
la conversion D'une chaîne en double primitif peut jeter NFE(NumberFormatException) si la valeur dans la chaîne N'est pas convertible en double primitif.
parseDouble () est utilisée pour initialiser une chaîne (qui devrait contenir une valeur numérique)....la valeur qu'il renvoie est de type de données primitives, comme int, float, etc.
mais valueOf() crée un objet de classe Wrapper. Vous devez le déballer afin d'obtenir la double valeur. On peut le comparer à un chocolat. Le fabricant emballe le chocolat avec du papier d'aluminium ou du papier pour éviter la pollution. L'utilisateur prend le chocolat, enlève et jette le wrapper et le mange.
faites la conversion suivante.
int k = 100;
Integer it1 = new Integer(k);
le type de données int k est converti en un objet, it1 en utilisant la classe entière. L'objet it1 peut être utilisé dans la programmation Java lorsque k est requis pour un objet.
Le code suivant peut être utilisé pour déballer (retour int Entier de l'objet) l'objet it1.
int m = it1.intValue();
Système .hors.println(m*m); // gravures 10000
/ / intValue() est une méthode de classe entière qui renvoie un type de données int.
Documentation for parseDouble()
says " retourne un nouveau double initialisé à la valeur représentée par la chaîne spécifiée, tel qu'exécuté par la méthode valueOf de la classe Double.", de sorte qu'ils doivent être identiques.
si vous voulez convertir une chaîne de caractères en double type de données, alors la plupart choisissent la méthode parseDouble (). Voir le code exemple:
String str = "123.67";
double d = parseDouble(str);
vous obtiendrez la valeur en double. Voir le tutoriel StringToDouble à tutorialData .