Wie konvertiert man Zeichenketten in Java in doppelte Zeichenketten

Rupam Yadav 12 Oktober 2023
  1. Double.parseDouble() Methode zur Konvertierung einer Zeichenkette in ein Double
  2. Double.valueOf() Methode zur Konvertierung einer Zeichenkette in einen Double
  3. DecimalFormat.parse zur Konvertierung einer Zeichenkette in einen Double
  4. Behandlung der NumberFormatException bei der Konvertierung eines String-Wertes in einen doppelten Wert
Wie konvertiert man Zeichenketten in Java in doppelte Zeichenketten

Wir werden verschiedene Möglichkeiten vorstellen, die gegebene Zeichenkette in Java in ein Double zu konvertieren, mit einigen leicht verständlichen Beispielen.

Double.parseDouble() Methode zur Konvertierung einer Zeichenkette in ein Double

Der beste und einfachste Weg, einen String in Java zu verdoppeln, ist die Verwendung der statischen Methode parseDouble der Klasse Double.

Double.parseDouble gibt einen primitiven Typ zurück.

public class Main {
  public static void main(String[] args) {
    String stringValue = "12.34";

    double doubleValue = Double.parseDouble(stringValue);
    System.out.println("Converted value: " + doubleValue);
  }
}

Ausgabe:

Converted value: 12.34

Es kann ein negativer oder positiver Wert in der Zeichenkette sein; diese Methode wird die Zeichenkette korrekt auf double parsen.

public class Main {
  public static void main(String[] args) {
    String stringValueNegative = "-12.34";
    String stringValuePositive = "+12.34";
    double doubleValueNegative = Double.parseDouble(stringValueNegative);
    double doubleValuePositive = Double.parseDouble(stringValuePositive);

    System.out.println("Converted negative value: " + doubleValueNegative);
    System.out.println("Converted positive value: " + doubleValuePositive);
  }
}

Ausgabe:

Converted negative value: -12.34
Converted positive value: 12.34

Double.valueOf() Methode zur Konvertierung einer Zeichenkette in einen Double

Wenn wir ein Double-Objekt anstelle des primitiven Typs double benötigen, können wir die Methode Double.valueOf verwenden, um einen doppelten Objektwert aus einer Zeichenkette zu erhalten.

public class Main {
  public static void main(String[] args) {
    String stringValueNegative = "-12.08d";
    String stringValuePositive = "+12.3400";

    Double doubleValueNegative = Double.valueOf(stringValueNegative);
    Double doubleValuePositive = Double.valueOf(stringValuePositive);
    System.out.println(doubleValueNegative);
    System.out.println(doubleValuePositive);
  }
}

Ausgabe:

-12.08
12.34

DecimalFormat.parse zur Konvertierung einer Zeichenkette in einen Double

Wenn der von uns gewünschte Wert so etwas wie 1,11,111.12d ist, können wir die Klasse DecimalFormat verwenden, um die Zeichenkette zu einem doubleValue() zu parsen.

Aber da die Klasse DecimalFormat verschiedene Werte wie int oder byte zurückgeben kann, ist es notwendig, alle Operationen im try-catch-Block durchzuführen. Und da wir einen doubleValue wünschen, müssen wir die Methode doubleValue() verwenden, um definitiv den Typ double zu erhalten.

import java.text.DecimalFormat;
import java.text.ParseException;

public class Main {
  public static void main(String[] args) {
    String stringValue = "1,11,111.12d";

    try {
      double doubleValue = DecimalFormat.getNumberInstance().parse(stringValue).doubleValue();
      System.out.println(doubleValue);

    } catch (ParseException e) {
      e.printStackTrace();
    }
  }
}

Ausgabe:

111111.12

Behandlung der NumberFormatException bei der Konvertierung eines String-Wertes in einen doppelten Wert

Manchmal bekommen wir vielleicht NumberFormatException. Das passiert, weil der Zeichenkettenwert kein gültiger Doppelwert ist.

Um es deutlicher zu machen, werden wir ein einfaches Beispiel sehen, das diese Ausnahme auslöst.

public class Main {
  public static void main(String[] args) {}
  String stringValue = "1,11";

  double d = Double.parseDouble(stringValue);
  System.out.println(d);
}
}

Ausgabe:

Exception in thread "main" java.lang.NumberFormatException: For input string: "1,11"
	at java.base/jdk.internal.math.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:2054)
	at java.base/jdk.internal.math.FloatingDecimal.parseDouble(FloatingDecimal.java:110)
	at java.base/java.lang.Double.parseDouble(Double.java:543)
	at com.company.Main.main(Main.java:14)

Die Exception tritt auf, weil 1,11 kein gültiger Doppelwert ist. Die Lösung für diesen Fehler besteht darin, das Komma durch einen Dezimalpunkt zu ersetzen, wie wir es weiter unten tun.

public class Main {
  public static void main(String[] args) {
    String stringValue = "1,11";

    double d = Double.parseDouble(stringValue.replace(",", "."));
    System.out.println(d);
  }
}

Ausgabe:

1.11
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

Verwandter Artikel - Java Double

Verwandter Artikel - Java String