Я застрял здесь с проблемой цикла, я работаю над сценарием, который получит, скажем, String "geij" или "abab" и должен будет превратить его в двойное число, например "6478" или "0101".».Я делаю преобразование из буквы в число благодаря двумерному массиву:
String crypt = "geij";
char twoD[][] = {{'a','b','c','d','e','f','g','h','i','j'}, {'0','1','2','3','4','5','6','7','8','9'}};
Сначала я передаю строку в массив char:
char tab[] = crypt.toCharArray();
Затем я использую цикл дляпреобразовать из буквы в число:
for(int c=0;c<tab.length;c++) {
for(int z=0;z<twoD.length;z++) {
if(tab[c] == twoD[0][z]) {
tab[c] = twoD[1][z];
}
}
Затем я создаю новый экземпляр String с именем 'second', чтобы превратить массив в строку
String second = new String(tab);
И я превратил эту строку вdouble
double finalC = Double.parseDouble(second);
Проблема в этом цикле. Если крипта String имеет значение «abab», цикл вернет 0101, как и положено, но если строка содержит любую букву после «a» или «b "из первого массива двумерного массива, как, например, строка" geij ", программа просто вернет" geij ".Я не понимаю, почему программа не идет дальше, чем b, и она начинает давать мне головокружение.Если у кого-то есть идея, я буду благодарен!
Вот пример внутренней части массива tab после цикла для строки "abcd":
Indice : 0 value: 0
Indice : 1 value: 1
Indice : 2 value: c
Indice : 3 value: d