gpt4 book ai didi

encryption - 如何解决我的代码中的这个范围错误?

转载 作者:IT王子 更新时间:2023-10-29 06:43:56 25 4
gpt4 key购买 nike

我正在尝试使用 flutter 在 android studio 上创建一个密码应用程序。现在我正在研究一个简单的 Atbash 密码,但在尝试测试它时出现范围错误。这些是加密和解密代码:

  @override
String encrypt(String plaintext, {String key}) {
String alfa = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String alfaReverso = "";
for(int i = alfa.length-1; i > -1; i++){
alfaReverso += alfa[i];
}

String encryText = "";
for (int i = 0; i < plaintext.length; i++){
if(plaintext.codeUnitAt(i) == 32){
encryText += " ";
}
else{
int count = 0;
for(int j = 0; j < alfa.length; j++){
if(plaintext[i] == alfa[j]){
encryText += alfaReverso[j];
break;
}
}
}
}

return "ENCRYPT Plain = " + encryText;
}
}

@override
String decrypt(String cyphertext, {String key}) {
String alfa = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
String alfaReverso = "";
for(int i = alfa.length-1; i > -1; i++){
alfaReverso += alfa[i];
}

String dencryText = "";
for (int i = 0; i < cyphertext.length; i++){
if(cyphertext.codeUnitAt(i) == 32){
dencryText += " ";
}
else{
int count = 0;
for(int j = 0; j < alfaReverso.length; j++){
if(cyphertext[i] == alfaReverso[j]){
dencryText += alfa[j];
break;
}
}
}
}

return "ENCRYPT Plain = " + dencryText;
}

当尝试运行它时,这是我得到的范围异常:

I/flutter ( 6004): RangeError (index): 无效值:不在 0..25 范围内,包括:26

我知道这与我使用的字母表有关,但我不知道如何解决。

最佳答案

从最高索引开始时出现错误:

 for(int i = alfa.length-1

您的索引必须下降,而您正在使用++。

Use this:

for(int i = alfa.length-1; i > -1; i--)

关于encryption - 如何解决我的代码中的这个范围错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52693743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com