ReviewAnalysis is #3 from the from the 2022 AP Computer Science A Free Response problems.
https://apcentral.collegeboard.org/pdf/ap22-frq-computer-science-a.pdf?course=ap-computer-science-a
Part (a) getAverageRating method
public double getAverageRating()
{
int ratingSum = 0;
for(Review rev : allReviews)
ratingSum += rev.getRating();
return ratingSum / (double) allReviews.length;
}
This could also be solved with a regular for loop. On the free response, when in doubt, use a regular loop (for or while).
See Enhanced for loop exercises for information on when enhanced for loops are appropriate, and to practice with them.
Part (b) collectComments method
public ArrayList<String> collectComments()
{
ArrayList<String> comments = new ArrayList<String>();
for(int i = 0; i < allReviews.length; i++)
{
String com = allReviews[i].getComment();
if(com.indexOf("!") >= 0)
{
String formatted = i + "-" + com;
String lastChar = formatted.substring(formatted.length() - 1);
if( ! lastChar.equals("!") && ! lastChar.equals("."))
formatted += ".";
comments.add(formatted);
}
}
return comments;
}
See more about manipulating Strings on the AP CS A Exam.
2022 AP CS Exam Free Response Solutions
Additional ArrayList resources
Help & comments
Get help from AP CS Tutor Brandon Horn