Ok, my program in this specific section takes a line of data from a studentAnswer string array, the value of which would be something like TTFFTFTFTF. I am supposed to take this, and compare it against a key array, which might look like TFFFTFTFTF. A student takes a quiz, and my program calculates the points correct.
My intention is to use a separate points array to find the numeric grade for the student. The index of studentAnswer refers to a specific student. So studentAnswer[i] is TTFFTFTFTF. I use substrings to compare each individual T/F against the correct answer in key[], which would have a single T/F in each index. Then, if they are correct in their answer, I add a 1 to the correlating index in points[] and will later find the sum of points[] to find the numeric grade out of ten.
My problem here is that String origAns, used to define the student’s original answer string, is getting a Java Error cannot find Symbol. I have tried placing the instantiation of origAns within each different for loop, but I can’t get the program to work. Int i is meant to follow each specific student- I have four parallel arrays that will all log the student’s ID number, numeric grade, letter grade, and original answers. So that is the intention of i, to go through each student. Then j should be used to go through each of these original student answer strings and compare it to the correct answer…
Logically, it makes sense to me where I would put it, but java doesn’t agree. Please help me to understand this error!
for (int i = 0; i < studentAnswer.length; i++){
String origAns = studentAnswer[i];
for (int j = 0; j < key.length; j++){
if (origAns.substring[j] == key[j]){
//substring of index checked against same index of key
points[j] = 1;
}
if (origAns.substring[j] != key[j]){
points[j] = 0;
}
}
}
It sounds like you’re trying to call the
substringmethod – but you’re trying to access it as if it were a field. So first change would be:Except that will be comparing string references instead of contents, so you might want:
Actually, I suspect you want
charAtto get a single character –substringwill return you a string with everything after the specified index:… where
keywould be achar[]here.You can also avoid doing the “opposite” comparison by using an
elseclause instead.You should also indent your code more carefully, for readability. For example:
And now, you can change that to use a conditional expression instead of an if/else: