Salut la grande famille dvp,
j'ai un soucis nécéssitant votre aide que voici:
je voudrais creer une fonction qui puisse me générer une matrice formée de 0 et de 1 ceux à partir d'une chaine formée de n'importe quelle type de caractère :
Voici ce que j'ai essayé avec uniquement les lettres:
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
 
public static char[][] CALCMAT(String maChaine) {
int nbRow = maChaine.length();
int nbCol = 8;
char[][] mat = new char[nbRow][nbCol];
String s;
char c;
for (int i = 0; i < nbRow - 1; i++) { // traiter chaque caractÚre de la
// chaine maChaine
c = maChaine.trim().charAt(i);
// if(c==' ')
s = toBinaryRow(c);
// else continue;
mat[i] = s.toCharArray();
}
StringBuilder binary;
for (int j = 0; j < nbCol; j++) { // traiter chaque colonne de mat
binary =new StringBuilder();
for (int i = 0; i < nbRow-1; i++)
{
binary.append(mat[i][j]); 
// colonne traite
String str = ""+ binary;
 
mat[nbRow - 1][j] = toBinaryCol(str);
}
}
 
return mat;
}
Avec les sous fonctions suivantes:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
//return 0 ou 1 suivant que le nombre de 1 suivat une colonne 
public static char toBinaryCol(String s) {
 
		int a = Integer.parseInt(s, 2); // convertir la chaine de binaire en
										// entier
		int n = Integer.bitCount(a); // compter le nombre de 1 contenu dans le
										// binaire de l'entier
 
		if (n % 2 == 0)
			return '0';
		else
			return '1';
	}
Et celle ci qui ajoute un 0 ou 1 selon le nombre de 1 a la chaine de binaire

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
 
 
	public static String toBinaryRow(char c) {
 
		String s = Integer.toBinaryString(c);
		int n = Integer.bitCount(c);
 
		if (n % 2 == 0)
			return s + "0";
		else
			return s + "1";
	}
Tout en esperant été clair dans mes propos.
Merci d'avance pour tout