Bonjour
A tous je cherche une méthode pour trouve le nombre de 0 qui sont présent dans une ligne avant la valeur 1:
ex :
000011110000 soit nb0(i)=4
000111111000 soit nb0(i+1)=3
000001100000 soit nb0(i+1)= 5
je vous remercie d'avance pour votre aide.
Discussion :
Bonjour
A tous je cherche une méthode pour trouve le nombre de 0 qui sont présent dans une ligne avant la valeur 1:
ex :
000011110000 soit nb0(i)=4
000111111000 soit nb0(i+1)=3
000001100000 soit nb0(i+1)= 5
je vous remercie d'avance pour votre aide.

Bonjour,
taChaine.charAt(int n) te retournes le n ème caractère de taChaine.
taChaine.indexOf(String motif [, int n ]) te retournes la position de la première occurrence du motif dans taChaine. Si tu ajoutes l'argument n, la recherche commence a partir du n ème caractère de taChaine. (Retourne -1 si le motif n'est pas dans la chaine).
Tu as plusieurs façon de faire pour arriver au résultat attendu.
Soit tu parcours ta chaine, lorsque tu as un 0 tu incrémentes une variable qui représente le nombre de 0, puis dès que tu as un 1, tu t'arrêtes.
En prenant comme hypothèse que tu n'as que des 0 ou des 1, soit tu obtiens la position du premier 1 grace a un indexOf, puis tu fais un taChaine.length - position du premier 1.
Je viens de voir le titre
Tu crées une fonction qui parcours ton tableau, tu incrémentes une variable quand c'est 0 puis dès que c'est 1, tu retournes cette valeur.
Tu peux ajouter un paramètre int n à ta fonction qui représente le point de départ de ton parcours de tableau.
Penses bien à vérifier que le point de départ est >= 0 et < tonTableau.length avant de faire des accès tableau.
A adapter selon tes besoins
Dernière modification par Invité ; 15/10/2015 à 18h32.
Voila le code que j'ai créé par contre je ne sais pas comment avoir juste le nombre de 0 avant chaque ligne en gros j'aimerais sortir 3 variables comme cela : nb0(ligne1) = 7, nb0(ligne2)= 8, nb0(ligne3)=1
Pour l'instant je n'ai que le nombre de zéros présent dans mon tableau.
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 int[][] carte = {0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1}, {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0},}; int a=0; int count =0; for (int i = 0 ; i < carte.length; ++i){ for (int j = 0; j < carte[i].length; ++j ){ a= carte[i][j]; if (a==0){ ++count;} else{} }} System.out.println (count);

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 public int nb0(final int[] ligne) { int nb0 = 0; if(ligne != null) { for(int i : ligne) { if( i == 0) { nb0++; }else { break; } } } return nb0; }
Dsl votre code ne fonctionne pas, je ne sais pas pourquoi
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 import java.util.ArrayList; class exercices { public static void main(String[] args) { int[][] carte = { {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,0,0,0,0,0}, {0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0}, {0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0}, {0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,0,0}, {0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,0,0}, {0,0,0,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,1,1,1,1,1,1,1,0,0,0,0}, {0,0,0,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0}, {0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0}, {0,0,0,0,0,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,1,1,1,1,1,1,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0}, {0,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0}, {0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0}, {0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, {0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0}, }; public int nb0(final int[] ligne) { int nb0 = 0; if(ligne != null) { for(int i : ligne) { if( i == 0) { nb0++; }else { break; } } } return nb0; } }}
La méthode que t'as donnée @EyZox est pour faire le calcul pour une ligne : il faut évidemment parcourir les lignes du tableau (à 2 dimensions) et appeler pour chaque ligne cette méthode.
Par ailleurs, une méthode se déclare dans le corps de la classe, pas dans le corps d'une méthode (dans ton code, la méthode nb0() est déclarée dans la méthode main() !
L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
Nouveau sur le forum ? Consultez Les Règles du Club.
Partager