我不明白为什么我的程序抛出“字符串索引超出范围”错误(Java)
我的程序是一个基本密码加密方法的粗略规划,通过选择随机数和随机数学运算符,这些随机数和运算符与密钥字符串中的数字一起用于加密密码。但是每当我运行这个程序时,它都会抛出一个错误,在查看了一段时间后,我不知道是什么导致了这个问题我不明白为什么我的程序抛出“字符串索引超出范围”错误(Java),java,for-loop,Java,For Loop,我的程序是一个基本密码加密方法的粗略规划,通过选择随机数和随机数学运算符,这些随机数和运算符与密钥字符串中的数字一起用于加密密码。但是每当我运行这个程序时,它都会抛出一个错误,在查看了一段时间后,我不知道是什么导致了这个问题 public static void main(String[] args) { String pass = "Password"; String pwE = ""; String key = ""; String keyop = "";
public static void main(String[] args) {
String pass = "Password";
String pwE = "";
String key = "";
String keyop = "";
for (int i = 0; i < pass.length(); i++) {
key += (int) (Math.random() * 9 + 1);
}
for (int i = 0; i < pass.length(); i++) {
keyop += (int) (Math.random() * 4 + 1);
}
System.out.println(keyop);
System.out.println(key);
for (int i = 0; i < pass.length(); i++) {
for (int j = 0; j < pass.length(); j++) {
if (keyop.charAt(i) == '1') {
pwE += " " + (char) (pass.charAt(i) + (key.charAt(j)));
} else if (keyop.charAt(i) == '2') {
pwE += (char) (pass.charAt(i) - key.charAt(j));
} else if (keyop.charAt(i) == '3') {
pwE += (char) (pass.charAt(i) * key.charAt(j));
} else if (keyop.charAt(i) == '4') {
pwE += " " + ((double) (pass.charAt(i) / key.charAt(j))) + " ";
}
}
pass = pwE;
pwE = "";
}
System.out.println(pass);
}
上面编写的代码有一个逻辑错误,您正在更改j循环末尾的pass值
for (int j = 0; j < pass.length(); j++) {} pass = pwE;
错误抛出在哪一行?异常的确切和完整堆栈跟踪是什么?对于int j=0;j
key.charAt(j)