Hint: Use startsWith() to check prefix in Java strings [OK]
Common Mistakes:
Using contains() which checks anywhere in string
Using equals() which checks full string equality
Using endsWith() which checks suffix
3. What is the output of the following Java code?
String[] words = {"apple", "app", "application", "banana"};
String prefix = "app";
int count = 0;
for (String w : words) {
if (w.startsWith(prefix)) {
count++;
}
}
System.out.println(count);
medium
A. 3
B. 1
C. 2
D. 4
Solution
Step 1: Check each word against prefix "app"
Words starting with "app" are "apple", "app", and "application" (3 words).
Step 2: Count matching words
Count increments 3 times for these words.
Final Answer:
3 -> Option A
Quick Check:
3 words start with "app" = 3 [OK]
Hint: Count words starting with prefix by checking each word [OK]
Common Mistakes:
Counting only exact matches
Counting words containing prefix anywhere
Off-by-one errors in counting
4. The following code is intended to count words starting with a prefix but has a bug. What is the bug?
String[] words = {"cat", "car", "dog", "cart"};
String prefix = "car";
int count = 0;
for (int i = 0; i <= words.length; i++) {
if (words[i].startsWith(prefix)) {
count++;
}
}
System.out.println(count);
medium
A. Prefix variable is not initialized
B. startsWith method is used incorrectly
C. Loop condition should be i < words.length, not i <= words.length
D. Array words is empty
Solution
Step 1: Analyze loop condition
The loop runs from i = 0 to i <= words.length, which causes an IndexOutOfBoundsException because last index is words.length - 1.
Step 2: Correct loop condition
Change condition to i < words.length to avoid accessing invalid index.
Final Answer:
Loop condition should be i < words.length, not i <= words.length -> Option C
Quick Check:
Array index max is length-1 = fix loop condition [OK]
Hint: Use i < array.length to avoid index errors [OK]
Common Mistakes:
Using <= instead of < in loop condition
Ignoring array index limits
Misusing startsWith method
5. Given a list of words ["tree", "trie", "trigger", "trip", "trick"] and prefix "tri", which Java code snippet correctly counts the words starting with the prefix using streams?
hard
A. int count = Arrays.stream(words).map(w -> w.startsWith(prefix)).count();
B. long count = Arrays.stream(words).filter(w -> w.startsWith(prefix)).count();
C. long count = Arrays.stream(words).filter(w -> w.contains(prefix)).count();
D. int count = Arrays.stream(words).filter(w -> w.endsWith(prefix)).count();
Solution
Step 1: Use stream filter with startsWith
The filter should keep words starting with the prefix using w.startsWith(prefix).
Step 2: Count filtered words
Use count() to get the number of matching words. The result is a long type.
Final Answer:
long count = Arrays.stream(words).filter(w -> w.startsWith(prefix)).count(); -> Option B
Quick Check:
Filter with startsWith + count() = long count = Arrays.stream(words).filter(w -> w.startsWith(prefix)).count(); [OK]
Hint: Use stream filter with startsWith and count() for prefix count [OK]
Common Mistakes:
Using map instead of filter
Using contains instead of startsWith
Using endsWith instead of startsWith
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.