158k views
3 votes
Consider the following method substringFound, which is intended to return true if a substring, key, is located at a specific index of the string phrase. Otherwise, it should return false.

public boolean substringFound(String phrase, String key, int index)
{
String part = phrase.substring(index, index + key.length());
return part.equals(key);
}
Which of the following is the best precondition for index so that the method will return the appropriate result in all cases and a runtime error can be avoided?
A. 0 <= index < phrase.length()
B. 0 <= index < key.length()
C. 0 <= index < phrase.length() + key.length()
D. 0 <= index < phrase.length() - key.length()
E. 0 <= index < phrase.length() - index

User Tewe
by
3.7k points

1 Answer

1 vote

Answer:

Option D 0 <= index < phrase.length() - key.length()

Step-by-step explanation:

The index has to be between the range of 0 <= index < phrase length - key length to prevent index out of bound error. This is because the substring method will have to extract part of the string with a certain length from the original string starting from the index-position. If the key length is longer than the string area between phrase[index] and phase.length(), an index out of bound runtime error will be thrown.

User Anpami
by
4.3k points