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
| while ((ligne = br.readLine()) != null) {
// je splite pour avoir la clé et la valeur pour une comparaison prochaine
testVar = ligne.split("=");
if (ligne.matches("^set.*=.*") && !ligne.contains("$")) {
// je ne fais rien car la ligne est correcte et correspond par exemple a set blabla = 12
} else if (ligne.matches("^set.*=.*") && ligne.contains("$")) {
// Si la ligne est du style set blabla = $asd + 34 alors il me faut supprimer $asd et +
ligne = count(ligne);
} else {
// dans le cas contraire exemple eewewewewewewewew ou esd = wwewe alors je mettre la ligne vide
ligne = "";
}
// Si la ligne n´est pas vide
if (ligne.length() > 0) {
// je verifie si son index peut etre creer et sauvegarder dans la liste d´indexes ou pas
if (creerIndex(testVar[0])) {
System.out.println("On récupère : " + ligne);
}
}
}
/**
* suppimes tout les mots commencant par $ ainsi que les +
* @param text
* @return String depourvu de $ et + exemple set a = 8
*/
public static String count(String text) {
String a = "";
String var2 = text;
for (int i = 0; i < text.length(); i++)
if (text.charAt(i) == '$') {
int pos2 = countAt(text, i, ' ');
if (pos2 > 0) {
a = text.substring(i, pos2);
if (a.length() > 0) {
var2 = var2.replace(a, "");
}
} else {
a = text.substring(i, text.length());
if (a.length() > 0) {
var2 = var2.replace(a, "");
}
}
}
String[] testVar = var2.split("=");
if (testVar[1].trim().equals("+"))
var2 = "";
else {
testVar[1] = testVar[1].replace("+", "");
var2 = testVar[0] + "= " + (testVar[1].trim());
}
return var2;
}
/**
* cherches a partir d´un text donné, et a partir d´une position donnée, la prochaine position du caractere a chercher
* @param text
* @param pos
* @param cara
* @return position du caractere s´il y en a , -1 s´il ny en a pas.
*/
public static int countAt(String text, int pos, char cara) {
for (int i = pos; i < text.length(); i++)
if (text.charAt(i) == cara) {
return i;
}
return -1;
}
/**
* verifies si l´index est deja present ou pas dans la list d´indexes, s´il n´est pas present alors on le sauvegarde
* @param indexStr
* @return si l´index existe deja, alors false sinon true
*/
public static boolean creerIndex(String indexStr) {
final String[] indexVar = indexStr.split(" ");
boolean isCreated = true;
if (indexVar.length > 1) {
if (!indexes.contains(indexVar[1])) {
indexes.add(indexVar[1]);
} else {
isCreated = false;
}
}
return isCreated;
} |
Partager