您好我的代码(代码1)下面的代码应该反转另一个代码(代码2)的效果,但它在任何一个代码中都无法正常工作。有人可以帮我弄这个吗? :)
代码2接受一个文本并取出每个字母,用一个数字对它进行计时,然后用模数29找到其余字母。这个新号码就是加密的字母。我想用代码1来解决这个问题。
我的字母= a,b,c,...,æ,ø,å= 29个字母
具有因子1,2和3的示例“你”变为
(25 * 1)%29 = 25
(15 * 2)%29 = 1
(21 * 3)%29 = 5
“YAE”
然后要反转它我接受新的字母,除以因子并检查是否是没有小数的数字。如果不是,那么我将29添加到lettervalue并重新开始。
示例再次使用1,2和3
“YAE”
(25/1)%29 = 25
(1/2)%29 = 0.5然后加29
(30/2)%29 = 15
(5/3)%29 = 1,66然后加29
(34/3)%29 = 11,33然后加29
(63/3)%29 = 21
“你”
代码1
String initialString = yourString.getText().toString();
char[] chars = initialString.toCharArray();
for (int i = 1; i <= chars.length; i++) {
if (chars[i-1] == ' '){
continue;
}
C = Integer.valueOf(faktorA);
if ( i%2 ==0 ) C = Integer.valueOf(faktorB);
if ( i%3 ==0 ) C = Integer.valueOf(faktorE);
chars[i-1] = characters.get((characters.indexOf(chars[i-1]) / C)%29);
if(chars[i-1]%1 != 0){
chars[i-1] = (char) (chars[i-1] * C + 29);
chars[i-1] = characters.get((characters.indexOf(chars[i-1]) / C)%29);
}
}
代码2
String initialString = yourString.getText().toString();
char[] chars = initialString.toCharArray();
for (int i = 1; i <= chars.length; i++) {
if (chars[i-1] == ' '){
continue;
}
C = Integer.valueOf(faktorA);
if ( i%2 ==0 ) C = Integer.valueOf(faktorB);
if ( i%3 ==0 ) C = Integer.valueOf(faktorE);
chars[i-1] = characters.get((characters.indexOf(chars[i-1]) * C)%29);
}