cours-info/utils/Utils.java

99 lines
2.7 KiB
Java

package utils;
import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.Scanner;
import java.util.function.BiFunction;
public class Utils {
public static final char[] ALPHABET = new char[] {
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o',
'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'
};
public static String[] CESAR_DATA_CLEAR = new String[] {
"quitte moi quittons nous juste un peu trop longtemps",
"pour que nous ressentions le bonheur d etre triste"
};
public static int[] CESAR_DATA_KEYS = new int[] {
7, 9
};
public static String[] CESAR_DATA_CRYPT = new String[] {
"xbpaal tvp xbpaavuz uvbz qbzal bu wlb ayvw svunaltwz",
"yxda zdn wxdb anbbnwcrxwb un kxwqnda m ncan carbcn"
};
public static final void afficher(Object... args) {
if (args == null) {
System.out.println("null");
} else {
String str = Arrays.stream(args)
.map(String::valueOf)
.collect(Collectors.joining(" "));
System.out.println(str);
}
System.out.print(' ');
}
public static final void afficherTabInt(int... args) {
if (args == null) {
System.out.println("null");
} else {
String str = Arrays.stream(args)
.boxed()
.map(i -> i+"")
.collect(Collectors.joining(" "));
System.out.println(str);
}
System.out.print(' ');
}
public static int lireEntier() {
try (Scanner reader = new Scanner(System.in)) {
System.out.println("Saisir un entier: ");
return reader.nextInt();
}
}
public static String lireChaine() {
try (Scanner reader = new Scanner(System.in)) {
System.out.println("Saisir une valeur et valider: ");
return reader.nextLine();
}
}
public static int position(char c) {
for (int i = 0; i<ALPHABET.length; i++) {
if (ALPHABET[i] == c) {
return i;
}
}
afficher("erreur", c);
return -1;
}
public static void testCesar(BiFunction<char[], Integer, char[]> func,
boolean chiffre) {
for (int i = 0; i<CESAR_DATA_KEYS.length; i++) {
int cle = CESAR_DATA_KEYS[i];
if (chiffre) {
String result = String.valueOf(func.apply(CESAR_DATA_CLEAR[i]
.toCharArray(), cle));
afficher("Clair: " + CESAR_DATA_CLEAR[i]);
afficher("Chiffré: " + result);
afficher("Succès: " + String.valueOf(CESAR_DATA_CRYPT[i]).equals(result));
} else {
String result = String.valueOf(func.apply(CESAR_DATA_CRYPT[i]
.toCharArray(), cle));
afficher("Chiffré: " + CESAR_DATA_CRYPT[i]);
afficher("Clair: " + result);
afficher("Succès: " + String.valueOf(CESAR_DATA_CLEAR[i]).equals(result));
}
afficher();
}
}
}