попробуй так, делает именно то, что тебе нужно
public static void main(String[] args) {
System.out.println( hasCapitals( "New Hampshire", 0 ) );
System.out.println( hasCapitals( "word", 0 ) );
System.out.println( hasCapitals( "I", 0 ) );
System.out.println( hasCapitals( "", 0 ) );
System.out.println( hasCapitals( "hamPshire", 0 ) );
}
private static boolean hasCapitals(String value, int index) {
if(value.isEmpty()) {
return false;
}
if(Character.isUpperCase(value.charAt(index))) {
return true;
} else if(value.length() > (index + 1)) {
return hasCapitals(value, index + 1);
}
return false;
}