Problema na scanner

alguém pode me ajudar com o meu problema esse é o código

Scanner scanner = new Scanner(System.in);
System.out.println(“Digite o nome do aluno”);
String nome = scanner.next();

    System.out.println("Digite o sobrenome do aluno");
    String sobrenome = scanner.next();

    System.out.println("Digite o RGA do Aluno");
    int rga = scanner.nextInt();

    System.out.println("Digite o nome do curso do Aluno");
    String nomeDoCurso = scanner.next();

    System.out.println("Digite o ano");
    int ano = scanner.nextInt();

    System.out.println("Digite a média geral do aluno");
    double media = scanner.nextDouble();

se eu digito por exemplo “engenharia de software” no nome do curso
ele da uma exceção java.util.InputMismatchException

A classe Scanner pega os dados digitados pelo teclado como se fossem
Strings , se você for pegar um int,double você tem que fazer a conversão.

Sobre o método que você utiliza para pegar os dados next() ele é usado para capturar
até achar um espaço ou quebra de linha . no seu caso você deve usar o método nextLine() que é usado
para pegar toda a String até achar a quebra de linha.

seu código vai ficar assim:

   Scanner scanner = new Scanner(System.in);
System.out.println("Digite o sobrenome do aluno: ");
String sobrenome = scanner.nextLine();

System.out.println("Digite o RGA do Aluno: ");
int rga = Integer.parseInt(scanner.nextLine());

System.out.println("Digite o nome do curso do Aluno: ");
String nomeDoCurso = scanner.nextLine();

System.out.println("Digite o ano");
int ano = Integer.parseInt(scanner.nextLine());

System.out.print("Digite a média geral do aluno");
double media =Double.parseDouble(scanner.nextLine());