IdentifiantMot de passe
Loading...
Mot de passe oubli� ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les r�ponses en temps r�el, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Java Discussion :

difficult�s pour convertir un tableau String en int


Sujet :

Langage Java

  1. #1
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    133
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Par d�faut difficult�s pour convertir un tableau String en int
    Bonsoir,

    J'essaye de convertir le contenu d'un tableau de String en int, il comporte 6 paquets de 3 chiffres.
    La conversion r�ussie avec le premier paquet, je n'arrive pas � convertir les 5 restants.
    Les donn�es sont issues d'un fichier data.txt

    Voici ma sortie en console avec eclipse
    Affiche la ligne issue du fichier txt + action split: 144, 140, 135, 155, 141, 146
    Transforme les String en int, incomplet pour le moment: 144
    java.lang.NumberFormatException: For input string: " 140"



    Ci-joint mon code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    public class Relevé {
     
    		public static void main(String[] args) throws IOException {
     
    		        // lecture du fichier texte autre solution
    				try {
    				FileInputStream chiffres = new FileInputStream("data.txt");
    				InputStreamReader inputStr = new InputStreamReader(chiffres);
    				BufferedReader bufredR = new BufferedReader(inputStr);
    				String ligne;
     
    				// découpe la liste du ficher txt avec virgule et espace avec split
    				while ((ligne = bufredR.readLine()) != null) {
    				String tableauDecoup[]=ligne.split(",");
    				System.out.println("Affiche la ligne issue du fichier txt + action split:  " + ligne);
     
    				  List<String> liste = Arrays.asList(tableauDecoup);
    					int[] intArray = new int[tableauDecoup.length];
    					for(int i=0; i<intArray.length; i++) 
    					{
        				intArray[i]=Integer.parseInt(tableauDecoup[i]);
        				System.out.println("Transforme les String en int, incomplet pour le moment:  " + intArray[i]);
    					}
     
    				}
    				bufredR.close();
    				} 
    				catch (Exception e) {
    				System.out.println(e.toString());
    				} 
     
    		}//fin de la fonction Main
     
    }//fin classe Relevé	]
    Merci de bien vouloir m'�pauler.
    Tr�s cordialement
    rapidego

  2. #2
    doc
    doc est d�connect�
    Membre exp�riment�

    Profil pro
    Inscrit en
    Ao�t 2002
    Messages
    107
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2002
    Messages : 107
    Par d�faut
    Je pense que c'est parce qu'il y a un espace apr�s la virgule.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    133
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Par d�faut les paquets de chiffres sont tous breconnus
    Citation Envoy� par doc Voir le message
    Je pense que c'est parce qu'il y a un espace apr�s la virgule.
    Bonjour doc,
    En plein dans le mil bravo j'ai mis un espace au niveau du split et tout est rentr� dans l'ordre.
    Merci pour ce d�tail qui m'a �chapp�. Dire que depuis huit soir�es je cherchais en vain.

    Tr�s cordialement
    et � +++ rapidego

  4. #4
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    133
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Par d�faut encore un probl�me de sortie sur btableau
    Bonsoir,

    Dans mon post ci-dessus j'ai expliqu� que tout �tait r�solu.
    Effectivement c'�tait le cas avec 6 paquets de chiffres.

    J'ai modifi� mon projet et je l'ai port� � 18 paquets.
    L� je me retrouve avec le m�me probl�me d'affichage.

    Voici la sortie avec donn�es et erreur identique que ci-dessus.
    Code console : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    Affiche la ligne issue du fichier txt + action split:  144, 140, 135, 155, 141, 146, 147, 155, 141, 150, 143, 129, 149, 137, 137, 149, 142, 136 
    Transforme les String en int:  140
    Transforme les String en int:  135
    Transforme les String en int:  155
    Transforme les String en int:  141
    Transforme les String en int:  146
    Transforme les String en int:  147
    Transforme les String en int:  155
    Transforme les String en int:  141
    Transforme les String en int:  150
    Transforme les String en int:  143
    Transforme les String en int:  129
    Transforme les String en int:  149
    Transforme les String en int:  137
    Transforme les String en int:  137
    Transforme les String en int:  149
    Transforme les String en int:  142
    java.lang.NumberFormatException: For input string: "136 "
    

    voici mon code modifi�
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.List;
    import java.util.Arrays;
     
    public class RelevéSystjour1 {
    	 static int total = 0;
     
    		public static void main(String[] args) throws IOException {
     
    			CalculTotaletMoyenne();	//appel de méthode
     
     
    	}//fin de la fonction Main
     
    		public static int CalculTotaletMoyenne() {
     
    			 // lecture du fichier texte
    			try {
    			FileInputStream chiffres = new FileInputStream("C:/Users/willy/Documents/dataSystjour1.txt");
    			InputStreamReader inputStr = new InputStreamReader(chiffres);
    			BufferedReader bufredR = new BufferedReader(inputStr);
    			String ligne;
     
    			// découpe la liste du ficher txt avec virgule et espace avec split
    			while ((ligne = bufredR.readLine()) != null) {
    			String tableauDecoup[]=ligne.split(", ");
    			System.out.println("Affiche la ligne issue du fichier txt + action split:  " + ligne);
     
    			  List<String> liste = Arrays.asList(tableauDecoup);
    				int[] intArray = new int[tableauDecoup.length];//lit tous les chiffres
    				for(int i=0; i<intArray.length; i++) 
    				{
    				intArray[i]=Integer.parseInt(tableauDecoup[i]);//transforme les chiffres en int
    				System.out.println("Transforme les String en int:  " + intArray[i]);
    					}//fin de ce qu'il y a dans la boucle
     
    				int total = liste.stream().mapToInt(Integer::valueOf).sum();//calcul le total
    				System.out.println("Calcule le total:  				" + total);
    				System.out.println("Calcule la moyenne des 6 relevés Systolique:  		" + total/18); 
    				//fin de calculer le total de la liste
     
    			}//fin while
     
    			bufredR.close();//ferme le fichier
     
    			}// fin de try 
     
    			catch (Exception e) {
    			System.out.println(e.toString());
    			}//fin de catch 
     
    			return total/18;
     
    		}// fin de la méthode CalculTotaletMoyenne
     
    }//fin classe Relevé
    merci pour l'aide
    tr�s cordialement
    rapidego

  5. #5
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    133
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Par d�faut suite ci-dessus
    Bonsoir,
    C'est bon j'ai trouv�, encore le m�me probl�me d'espace suite � une erreur de frappe j'avais un espace apr�s le dernier paquet.

    Merci avec mes excuses
    �+++ cordialement
    rapidego

  6. #6
    R�dacteur/Mod�rateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Ao�t 2005
    Messages
    6 913
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : Nouvelle-Cal�donie

    Informations professionnelles :
    Activit� : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 6 913
    Billets dans le blog
    54
    Par d�faut
    Donc faire intArray[i]=Integer.parseInt(tableauDecoup[i].trim()); car ton expression r�guli�re pour d�couper le tableau ne supprime pas des potentiels espaces apr�s le dernier nombre.
    Merci de penser au tag quand une r�ponse a �t� apport�e � votre question. Aucune r�ponse ne sera donn�e � des messages priv�s portant sur des questions d'ordre technique. Les forums sont l� pour que vous y postiez publiquement vos probl�mes.

    suivez mon blog sur D�veloppez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  7. #7
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    133
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Par d�faut s�lectionner une plage dans untableau en java
    Bonsoir,

    Merci � bouye pour le conseil.

    Suite � mon programme ci-dessus.

    Est-il possible de s�lectionner une plage de paquet de chiffres dans mon tableau afin d'y effectuer un calcul.

    �+++ cordialement
    rapidego

  8. #8
    R�dacteur/Mod�rateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Ao�t 2005
    Messages
    6 913
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 49
    Localisation : Nouvelle-Cal�donie

    Informations professionnelles :
    Activit� : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 6 913
    Billets dans le blog
    54
    Par d�faut
    C'est a dire ? A partir du moment ou tu as ton tableau, tu peux uniquement travailler sur une sous-partie de ce dernier via une boucle for ou via IntStream en connaissant l'indice de debut (et au choix la longueur des elements a traiter ou l'indice de fin).
    Si les elements a traiter ne sont pas contigu�s, a toi de d�finir le test appropri� a appliquer pour discriminer les elements les uns des autres, et tu peux soit parcourir l�int�gralit� du tableau via une bouche for, for-each, while, do-while ou Array.stream().filter()...
    Merci de penser au tag quand une r�ponse a �t� apport�e � votre question. Aucune r�ponse ne sera donn�e � des messages priv�s portant sur des questions d'ordre technique. Les forums sont l� pour que vous y postiez publiquement vos probl�mes.

    suivez mon blog sur D�veloppez.

    Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ~ Rich Cook

  9. #9
    Membre confirm�
    Homme Profil pro
    Inscrit en
    Octobre 2009
    Messages
    133
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 133
    Par d�faut Essai sur travail avec tableau
    Bonsoir,
    Merci � bouye pour son aide.

    A force de pers�v�rer je suis arriv� � avancer, ce code n'est qu'un essai, je suis un retrait� qui est passionn� de programation !

    J'ai en partie r�solu mes essais.

    Ci-dessous mon code et � la suite, la sortie sur console eclipse.

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    package tensionessai1;
     
    import java.io.BufferedReader;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.List;
    import java.util.stream.IntStream;
    import java.util.Arrays;
    import java.util.Collections;
     
    public class RelevéSystjour1 {
    	 static int total = 0;
    	 //Structure du tableau pour sélectionner une tranche ou plage.
    	 public static int[] tableauDecoup(int[] array, int startIndex, int endIndex) {
    		    int[] sortieTranche = IntStream.range(startIndex, endIndex).map(i -> array[i]).toArray();
    		    return sortieTranche;
    	 }
     
    		public static void main(String[] args) throws IOException {
     
    			CalculTotaletMoyenne();	//appel de méthode
     
     
    	}//fin de la fonction Main
     
    		public static int CalculTotaletMoyenne() {
     
    			 // lecture du fichier texte
    			try {
    			FileInputStream chiffres = new FileInputStream("C:/Users/willy/Documents/dataSystjour1.txt");
    			InputStreamReader inputStr = new InputStreamReader(chiffres);
    			BufferedReader bufredR = new BufferedReader(inputStr);
    			String ligne;
     
    			// découpe la liste du ficher txt avec virgule et espace avec split
    			while ((ligne = bufredR.readLine()) != null) {
    			String tableauDecoup[]=ligne.split(",");
    			System.out.println("Affiche la ligne issue du fichier txt + action split:  " + ligne);
     
    			  List<String> liste = Arrays.asList(tableauDecoup);
    				int[] intArray = new int[tableauDecoup.length];//lit tous les chiffres
    				for(int i=0; i<intArray.length; i++) 
    				{
    				intArray[i]=Integer.parseInt(tableauDecoup[i]);//transforme les chiffres en int
    				System.out.println("Transforme les String en int:  " + intArray[i]);
    					}//fin de ce qu'il y a dans la boucle
     
    				//*********************afficher une tranche ou plage*******************************
    			    int startIndex = 0, endIndex = 5;
    			    int[] sortieTranche = tableauDecoup(intArray, startIndex, endIndex + 1);
    			    System.out.println("Tranche délimitée jour 1 : " + Arrays.toString(sortieTranche));//jour 1
     
    			    //**************************** moyenne systolique du jour 1***********************
    			    int total1 = 0;
    			    for(int i = 0; i < sortieTranche.length; i++) {
    			    	total1 = total1 + sortieTranche[i];
    			    }
    			    int moyenne = total1 / sortieTranche.length;
    			    System.out.println("Moyenne systolique jour1:    " + moyenne);
     
    			    //*************************** moyenne systolique du jour 1**************************
    			    int startIndex1 = 6, endIndex1 = 11;
    			    int[] sortieTranche1 = tableauDecoup(intArray, startIndex1, endIndex1 + 1);
    			    System.out.println("Tranche délimitée jour 2: " + Arrays.toString(sortieTranche1));//jour 2
     
    			  //*************************** moyenne systolique du jour 2*****************************
    			    int total2 = 0;
    			    for(int i = 0; i < sortieTranche.length; i++) {
    			    	total2 = total2 + sortieTranche1[i];
    			    }
    			    int moyenne2 = total2 / sortieTranche1.length;
    			    System.out.println("Moyenne systolique jour2:    " + moyenne2);
    			    //**************************** moyenne systolique du jour 2**************************
     
    			    int startIndex2 = 12, endIndex2 = 17;
    			    int[] sortieTranche2 = tableauDecoup(intArray, startIndex2, endIndex2 + 1);
    			    System.out.println("Tranche délimitée jour 3: " + Arrays.toString(sortieTranche2));//jour 3
     
    			    //********************************* moyenne systolique du jour 3****************************
    			    int total3 = 0;
    			    for(int i = 0; i < sortieTranche2.length; i++) {
    			    	total3 = total3 + sortieTranche2[i];
    			    }
    			    int moyenne3 = total3 / sortieTranche2.length;
    			    System.out.println("Moyenne systolique jour3:    " + moyenne3);
     
    			    //********************************** moyenne systolique du jour 3****************************
     
    			    //************** afficher tranche ou plage avec moyenne de chaque tranche ou plage*************	
     
    			    //calcul du total concernant la liste
    				int total = liste.stream().mapToInt(Integer::valueOf).sum();//calcul le total
    				System.out.println("Calcule le total des 3 jours de relevés:  			" + total);
    				System.out.println("Calcule la moyenne des 18 relevés Systolique:  		" + total/18); 
    				//fin de calculer le total de la liste
     
    		      //  affichage de la tension la lus élevée et la plus basse
    		        System.out.println("La tension systolique la plus basse:  " + Collections.min(liste));
    		        System.out.println("La tension systolique la plus élevée:  " + Collections.max(liste));
     
     
    			}//fin while
     
    			bufredR.close();//ferme le fichier
     
    			}// fin de try 
     
    			catch (Exception e) {
    			System.out.println(e.toString());
    			}//fin de catch 
     
    			return total/18;
     
     
     
    		}// fin de la méthode CalculTotaletMoyenne
     
     
     
    }//fin classe Relevé
    La sortie sur console eclipse
    Code console : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    Affiche la ligne issue du fichier txt + action split:  144,140,135,155,141,146,147,155,141,150,143,129,149,137,137,149,142,136
    Transforme les String en int:  144
    Transforme les String en int:  140
    Transforme les String en int:  135
    Transforme les String en int:  155
    Transforme les String en int:  141
    Transforme les String en int:  146
    Transforme les String en int:  147
    Transforme les String en int:  155
    Transforme les String en int:  141
    Transforme les String en int:  150
    Transforme les String en int:  143
    Transforme les String en int:  129
    Transforme les String en int:  149
    Transforme les String en int:  137
    Transforme les String en int:  137
    Transforme les String en int:  149
    Transforme les String en int:  142
    Transforme les String en int:  136
    Tranche d�limit�e jour 1 : [144, 140, 135, 155, 141, 146]
    Moyenne systolique jour1:    143
    Tranche d�limit�e jour 2: [147, 155, 141, 150, 143, 129]
    Moyenne systolique jour2:    144
    Tranche d�limit�e jour 3: [149, 137, 137, 149, 142, 136]
    Moyenne systolique jour3:    141
    Calcule le total des 3 jours de relev�s:  			2576
    Calcule la moyenne des 18 relev�s Systolique:  		143
    La tension systolique la plus basse:  129
    La tension systolique la plus �lev�e:  155
    

    Je ne marque pas r�solu car mon code n'est pas termin�
    a +++ cordialement
    rapidego

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [uiimport] Difficult�s pour importer un tableau
    Par SimpleGUI dans le forum MATLAB
    R�ponses: 8
    Dernier message: 29/09/2017, 14h28
  2. Difficult� pour travaill� un tableau ou un objet en Javascript
    Par juju742 dans le forum G�n�ral JavaScript
    R�ponses: 1
    Dernier message: 18/04/2017, 13h56
  3. difficult�s pour convertir une string en date
    Par p1xl_01 dans le forum Collection et Stream
    R�ponses: 13
    Dernier message: 07/06/2011, 17h18
  4. Probl�me pour convertir un tableau de byte en un inputStream.
    Par fab76000 dans le forum Entr�e/Sortie
    R�ponses: 2
    Dernier message: 22/04/2010, 11h39
  5. Convertir char ou String en Int
    Par Invit�(e) dans le forum ASP
    R�ponses: 2
    Dernier message: 10/06/2008, 16h17

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo