Исключение в потоке "main" java.lang.StringIndexOutOfBoundsException: индекс строки вне диапазона: 7 - PullRequest
0 голосов
/ 06 октября 2018

Я пытаюсь напечатать символ фамилии, но мой код генерирует исключение.

Код:

import java.util.Scanner;

public class LastCharacter {


    public static void main(String[] args) {
        Scanner reader = new Scanner(System.in);
        System.out.println("Type your name: ");
        String name = reader.nextLine();
        char nameLastChar = lastCharacter(name);
        System.out.println("Last character = " + nameLastChar);


    }


    public static char lastCharacter(String text){

        int last = text.length();
        char lastChar = text.charAt(last);
        return lastChar;
    }


}

Исключение:

Исключение в потоке "main" java.lang.StringIndexOutOfBoundsException: индекс строки вне диапазона: 7

Я не могу найти свою ошибку и не понимаю информацию об исключении.

1 Ответ

0 голосов
/ 06 октября 2018

Если строка имеет длину 7 символов, последний индекс - 6, а не 7. Помните, что индексирование начинается с 0.

Вы хотите

int last = text.length() - 1; // Adjust the index
char lastChar = text.charAt(last);
...