AP CSA 1.15 Debugging: Plus Means Two Different Things

Unit 1: Using Objects and Methods · Lesson 1.15 · Debugging

Plus Means Two Different Things

String Manipulation. This is not a blank editor: it is someone else's attempt. Find what is wrong, fix it, and submit to be graded against hidden test cases.

Why debugging is its own skill

The plus operator adds numbers and joins text, and which one it does depends entirely on what is to its left as it works across the line. Start with text and every number after it becomes text too, one at a time, left to right.

What is wrong with it

  1. The label line prints the two numbers glued together as text instead of added, because a String appears before them and turns the pluses into joins. Add parentheses so the addition happens first.
  2. The last character is taken with charAt(word.length()), which is one past the end and throws StringIndexOutOfBoundsException. Fix the index.
  3. The first-character line is correct.

The program reads

A word, then two integers.

The program should print

Four lines: the first character of the word, the last character of the word, the sum of the two integers labeled with the prefix Sum: and the two integers joined as text with no label.

Worked examples

These show what the FIXED program should print. There are more cases you cannot see, and they use different values, so patching around just these numbers will fail.

Example 1 input
hello 2 3
Example 1 output
h
o
Sum: 5
23
Example 2 input
a 10 20
Example 2 output
a
a
Sum: 30
1020

Your answer

Main.java

Input for the Run button

Run sends whatever is in the code box below, bugs and all, so you can see the crash or the wrong answer for yourself before you fix anything.


  

  

Stuck?

Hint 1

Java works left to right. "Sum: " + a is text, and then that text + b is more text, so with a = 2 and b = 3 you get Sum: 23. Parentheses around a + b force the addition to finish before anything is joined.

Hint 2

The last line is supposed to join rather than add, and it already does. Leave it alone: it is there so you can see both behaviors of the same operator side by side.

Hint 3

charAt uses the same index rules as everything else: valid positions run from 0 to length minus 1. The last character is always at length() - 1.

Where to go next

Get in Touch

Whether you're a student, parent, or teacher — I'd love to hear from you.

Just want free AP CS resources?

Enter your email below and check the subscribe box — no message needed. Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.

Typically responds within 24 hours

Message Sent!

Thanks for reaching out. I'll get back to you within 24 hours.

🏫 Welcome, fellow educator!

I offer curriculum resources, practice materials, and study guides designed for AP CS teachers. Let me know what you're looking for — whether it's classroom materials, a guest speaker, or Teachers Pay Teachers resources.

Email

[email protected]

📚

Courses

AP CSA, CSP, & Cybersecurity

Response Time

Within 24 hours

Prefer email? Reach me directly at [email protected]