Давайте разберем ваш вопрос по частям
String nameString = "Your name is Matt";
indexOf: он начинает чтение слева направо и останавливается, когда найден первый соответствующий символ, и возвращает позицию символа
nameString.indexOf("M", 0) /* returns 13 */
nameString.indexOf(" ", 0) /* returns 4 (it's placed at 4'th position in the given sentence) */
lastIndexOf: начинает читать справа налево и останавливается, когда совпадает char, и возвращает позицию совпадающего char
nameString.lastIndexOf("t", 17) /* returns 16 */
nameString.lastIndexOf(" ", 17) /* returns 12 */
nameString.lastIndexOf(" ", 0) /* returns -1,
Внимание: вы ошиблись, указав позицию 0, она читается справа налево и не нашла ничего подходящего, поэтому возвращает -1) * /