2009-09-13 6 views
0

J'ai une chaîne qui sera différente à chaque fois, mais suivez la forme de -3.33, -46.53,37.39,26.55,97.11,68,46, -32,46, -5,89, - 62.89, -7.9, et je veux supprimer chaque nombre et stocker comme un double dans un tableau. même pseudocode serait génial je dessine un blanc. ViveJava: Supprimer le double de la chaîne et stocker dans le tableau

+0

Vive les gens, Je me demandais ce que je serais mieux à l'aide d'un arraylist que je lis à partir d'un fichier et don Vous ne devriez pas connaître la taille de chaque fichier – Nick

+0

Vous devriez essayer de poser cette question séparément avec plus de détails, mais si vous avez un nombre inconnu de lignes comme celles-ci, alors c'est pour cela qu'une liste de tableaux a été conçue. Si tout est sur une ligne, lire en mémoire à la fois, alors un tableau pré-alloué a du sens. – Yishai

+0

Merci, les gens ont encore des problèmes mais je vais demander dans un post séparé pour clarifier les choses. Bravo encore. – Nick

Répondre

4
String[] doubles = myString.split(","); 

itérer puis sur le tableau double et font Double.parseDouble();

0

Peut-être quelque chose comme:

String[] sa = yourString.split(","); 
Double[] da = new Double[sa.length]; 
int idx = o; 
for(String s : sa) { 
    da[idx++] = Double.parseDouble(s); 
} 
1

manière alternative, lit entrée de fichier et analyse des éléments comme ton sont lus.

static java.util.ArrayList<Double> getData(String filename) throws FileNotFoundException { 
    java.util.ArrayList<Double> result = new java.util.ArrayList<Double>(); 
    java.util.Scanner sc = new java.util.Scanner(new java.io.File(filename)); 

    sc.useDelimiter(","); 
    while (sc.hasNext()) 
     result.add(Double.parseDouble(sc.next())); 
    sc.close(); 

    return result; 
} 

Si vous voulez, vous pouvez simplement les stocker dans un tableau comme:

Double data[] = null; 
    getData("input.dat").toArray(data); 
Questions connexes