2010-01-16 4 views
1

Merci d'avoir lu ma question. J'ai un fichier CSV, je le lis et le stocke dans une variable. Maintenant, je veux juste PLUS toute la colonne pour voir sa somme. Par exempleCalcul de Csv en utilisant Java

3,34 
12,673 
23,8543 


SUM 
------------- 
965,12658 

colonnes et les lignes peuvent être limite N. Ça a l'air facile mais je ne sais pas, c'est prendre mon temps. S'il vous plaît faites-moi savoir quelle structure de données dois-je utiliser? Ou si vous pouvez me dire quelques étapes pour résoudre ce problème. Merci!

+0

s'il vous plaît voir ci-dessus les valeurs, je ne sais pas ce qui est arrivé. Mais dans l'exemple csv a 2 colonnes – user238384

+0

Pouvez-vous montrer le code que vous avez essayé jusqu'à présent? Nous pouvons être en mesure de signaler les zones qui vous causent des erreurs. –

+0

LinkedList est une exagération ici. Vous n'avez pas besoin de prendre en compte le nombre de lignes - seul le nombre de colonnes est important. – kgiannakakis

Répondre

1

Merci à tous pour votre aide. Je l'ai résolu par moi-même. J'ai utilisé un tableau à deux dimensions. La première représente la colonne et la deuxième représente les rangées. Je reçois le numéro de colonne pour déclarer le 1er tableau dynamique puis utilise la boucle pour stocker les valeurs et les additionner! ! !

2

Puisqu'il s'agit probablement de devoirs je ne donnerai pas de code source. Vous avez juste besoin de lire les lignes et de les analyser en utilisant String.split. Convertissez-les en entiers en utilisant Integer.parseInt. Attention aux exceptions. Si vous avez N colonnes, vous devez avoir N variables pour contenir le résultat. Mettez à jour les variables après chaque lecture.

+0

LOL, Ce n'est pas une cession. Aussi, je n'ai pas demandé de code source. J'ai dit si vous pouviez me donner quelques indices. Je suis désolé mais je n'ai pas compris votre solution. Je peux lire csv. Je peux les séparer je peux stocker toutes les valeurs dans la variable. Mais déclarer une variable N pour les colonnes à l'exécution n'est pas une solution pratique. Ouais peut-être à l'école, vous pouvez le faire juste pour passer l'examen;) – user238384

3

Tout d'abord, je vous recommande d'utiliser cette bibliothèque pour lire le CSV: http://opencsv.sourceforge.net/

En utilisant cette bibliothèque, vous pouvez écrire quelque chose comme ceci:

CSVReader reader = new CSVReader(new FileReader("yourfile.csv")); 
String [] firstLine = reader.readNext(); 
long sum; 
for (String columnValue : firstLine) { 
    try { 
     sum += Long.parseLong(columnValue); 
    } catch (NumberFormatException e) { 
     throw new RuntimeException(e); 
    } 
} 
System.out.println(sum); 

Cet exemple se contente de lire la première ligne, mais vous pouvez écrire une boucle while pour conserver les lignes d'analyse jusqu'à la fin du fichier.

+0

Désolé, j'ai copié la mauvaise URL. Je l'ai changé pour le bon. Open CSV est celui dont vous avez besoin. –

+0

merci, ça m'a aidé à avoir l'idée. Je n'utilise pas opencsv quand je peux écrire mon propre programme :) – user238384

Questions connexes