Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1056 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  Compter le nombre de 1 dans une ligne

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Compter le nombre de 1 dans une ligne

n°2212539
sarah991
Posté le 04-12-2013 à 03:14:38  profilanswer
 

Bonsoir,
j'ai un fichier contenant dans chaque ligne plusieurs caractères et un nombre inconnu de "1" je voulais calculer le nombre de 1 dans chaque ligne. Pour cette raison, j'ai mis le contenu de mon fichier dans une liste contenant une ligne dans chaque élément. en comptant le nombre de 1 dans chaque ligne, le résultat obtenus est incorrecte j'obtiens en fait, des nombres très élèves pour chaque ligne. Pouvez vous m'aidez pour détecter l'erreur?
voici mon code:

Code :
  1. public static void main(String[] args) throws Exception {
  2.      List<String> list1 = new ArrayList<String>();
  3.      List<String> list2 = new ArrayList<String>();
  4.      int nb=0;
  5.         File f = new File("file.txt" );
  6.         FileReader fr = new FileReader(f);
  7.         BufferedReader br= new BufferedReader(fr);
  8.         String ligne = "";
  9.         ligne=br.readLine();
  10.         int i=0;
  11.         while(ligne!=null)
  12.         {
  13.             list1.add(ligne.toString());
  14.             ligne=br.readLine();
  15.             i++;
  16.         }
  17.         nb=0;
  18.         br.close();
  19.         for(i=0;i< list1.size();i++){
  20.           if (list1.get(i).contains("1" )){
  21.               nb++;
  22.         System.out.println(nb); }
  23.         }
  24. }

mood
Publicité
Posté le 04-12-2013 à 03:14:38  profilanswer
 

n°2212549
honrisse
Posté le 04-12-2013 à 08:52:50  profilanswer
 

Bonjour,
 
La méthode contains (http://docs.oracle.com/javase/7/do [...] equence%29) renvoie true si et seulement si le string contient la séquence spécifique de caractères. Si dans la ligne il y un seul 1 ou dix, la méthode renverra true.
 
A priori vous parcourez la liste des lignes et incrémentez une variable si la ligne contient un 1. Il faudrait en plus parcourir chaque ligne pour compter le nombre de 1, cf http://stackoverflow.com/a/275969.
Une autre solution plus simple à mettre en œuvre est d'enlever tous les 1 d'une ligne et de regarder la différence de taille avant/après.
 

Code :
  1. BufferedReader bufferedReader = null;
  2.  try {
  3.   String sCurrentLine;
  4.   bufferedReader = new BufferedReader(new FileReader("file.txt" ));
  5.   int numLine = 0;
  6.   while ((sCurrentLine = bufferedReader.readLine()) != null) {
  7.    int count = sCurrentLine.length() - sCurrentLine.replace("1", "" ).length();
  8.    System.out.println(numLine + " ) ==> " + count);
  9.    numLine++;
  10.   }
  11.  } catch (IOException e) {
  12.   e.printStackTrace();
  13.  } finally {
  14.   try {
  15.    if (bufferedReader != null) bufferedReader.close();
  16.   } catch (IOException ex) {
  17.    ex.printStackTrace();
  18.   }
  19.  }


 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  Compter le nombre de 1 dans une ligne

 

Sujets relatifs
Vidéo conférence en ligneComment générer un nombre aléatoire en C++ ?
Afficher un très grand nombre entierFixer le nombre de caractères par ligne d'un fichier
[Résolu] Question sur l'optimisation pour compter le nombre de lignecompter le nombre de ligne d'un fichier
Compter le nombre de caractère d'une ligne d'un fichier[RESOLU]Compter le nombre de ligne d'un fichier
Compter le nombre de ligne dans un fichier texte sous WindowsCompter le nombre de ligne d un tableau vba excel
Plus de sujets relatifs à : Compter le nombre de 1 dans une ligne


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR