This week's giveaway is in the Spring forum.We're giving away four copies of Learn Spring Security (video course) and have Eugen Paraschiv on-line!See this thread for details.
Win a copy of Learn Spring Security (video course) this week in the Spring forum!

# cant find solution - OutOfBoundsException

Robert Hopping
Greenhorn
Posts: 2
I have the logic figured out but I can't seem to get past the implementation.

Thanks for any help

Rob

This is the error I get:

OutOfBoundsException: 27
at Cipher.search(Cipher.java:31)
at Cipher.encrypt(Cipher.java:73)
at Cipher.main(Cipher.java:89)

CODE:

public class Cipher {

public static int search (char[]g, char lookfor, int n) {

boolean found;
int i;

found = false;
i=0;

do {
if (lookfor == g[i]) {
found = true;
}
else {
i++;
}
} while (!found && 1 < n);
if (found) {
return i;
}
else {
return -1;
}
}

public static String encrypt (String str) {

String plainText;
String cipherText;
String outString;
char findChar;
char foundChar;
int foundPos;

char[]p = new char[27];
char[]c = new char[27];

plainText = " ABCDEFGHIJKLMNOPQRSTUVWXYZ";
cipherText = "}{+)(_*^&\$%!#@~[;]:?><,./|`";
outString = "";
for (int i=0; i <= 26; i++) {
p[i] = plainText.charAt(i);
c[i] = cipherText.charAt(i);
}
for (int n=0; n <= str.length(); n++) {
findChar = str.charAt(n);
foundPos = search(p, findChar, 26);
outString = outString + foundPos;
}
return outString;
}

// main line of program
public static void main (String[] args) {
String plainText;
String cipherText;
plainText = "abcdefg";
cipherText = encrypt(plainText);
System.out.println(cipherText);
}
}

Michael Dunn
Ranch Hand
Posts: 4632
perhaps
} while (!found && 1 < n);

should be
} while (!found && i < n);

and
for (int n=0; n <= str.length(); n++) {

should be
for (int n=0; n < str.length(); n++) {

Robert Hopping
Greenhorn
Posts: 2
Thank you for your assistance. I can never find my own typos (1 instead of i). Everything is now working.