Getting a substring outside the range of a string can cause an index-out-of-bounds exception.
1public void checkSubStringNoncompliant(String sampleString) {
2 final String sampleSubstring = "sample";
3 final int index = sampleString.lastIndexOf(sampleSubstring);
4 // Noncompliant: it is not checked if substring is part of the string.
5 final String subString = sampleString.substring(0, index);
6}
1public void checkSubStringCompliant(String sampleString) {
2 final String sampleSubstring = "sample";
3 final int index = sampleString.lastIndexOf(sampleSubstring);
4 // Compliant: checked if substring is part of the string.
5 final String subString = index > 0 ? sampleString.substring(0, index) : sampleString;
6}