2016-04-06 10 views
-2

Es ist Teil eines Schullabors und ich habe recherchiert und ich kann nichts finden, um diese Aufgabe zu erfüllen. Ich lese Zeilen aus einer Datei mit FileReader und BufferedReader. Die Daten in der Datei ist ein Name und ein Alter in folgendem Format:Wie kann ich in Java eine Zeichenfolge in ein Double (nicht Double) konvertieren?

John Doe 20

Jane Doe 30

usw. Ich habe bereits einen Code, der jede Zeile und Split als solche nehmen: split [0] = {"John", "doe", "20"}

Ich brauche die "20" und speichern in einem Array von Doppel wie Double [0] = 20;

Der Grund, warum es ein Double und nicht Double ist, ist, weil der Teil des Codes in der Aufgabe bereits geschrieben ist und ich bin mir sicher, ich kann nicht einfach alles ändern und stattdessen ein Double verwenden. Wie kann ich das machen? Vielen Dank im Voraus!

+4

Double.parseDouble (Yourstring) – Eran

+1

Und Sie können von Double gehen in einer Nanosekunde zu verdoppeln, so dass kein Grund, sich zu fragen, wie die anderen zu bekommen. –

+1

Sie sollten in Java "Autoboxing" und "Unboxing" lesen. Es sollte praktisch keine Probleme zwischen Double und Double geben. –

Antwort

6

Verwenden Sie Double#parseDouble.

Wie Sie die statische Methode gibt eine primitive double sehen und nicht ein Objekt Double:

public static double parseDouble(String s) 

public static void main(String[] args) { 
    String strNumber = "20"; 
    double myParsedDouble = Double.parseDouble(strNumber); 

    System.out.println(myParsedDouble); 
} 
0

Sie wollen es in einer for-Schleife zu erhalten und Iterieren starten .. Ich verwende einfach List, um die Daten zu manipulieren, da wir nicht wissen, wie viele Übereinstimmungen es gibt (und somit können wir kein Array einrichten).

String[] startingArray; // Whatever you put in here 
List<Double> endingList = new ArrayList<Double>(); 
for (String element : startingArray) { 
    try { 
     endingList.add(Double.parseDouble(element)); 
    } catch (NumberFormatException e) { 
     // do nothing if it doesn't parse 
     // note that catching exceptions do not have an adverse effect on performance 
    } 
} 

// Either, if you want it in a Double[]... or 
Double[] endingArray = endingList.toArray(new Double[endingList.size()]); 

// If you want a double[], start iterating... 
double[] endingArray = new double[endingList.size()]; 
for (int i = 0; i < endingList.size(); i++) { 
    endingArray[0] = endingList.get(0); 
}