Erro na hora de rodar aplicação no CMD!

Boa tarde galera, sou novo em java (em programação tbm e.e) e estava construindo uma aplicação onde ela realiza os cálculos para as funções do 1º e 2º grau. Para incrementar coloquei um loop while para que toda vez q terminasse os calculos o usuário poderia voltar e reiniciar a aplicação. Só q na hora de escolher o ‘S’ (Sim) e retornar ao início ocorre o seguinte erro:

"Exception in thread “main” java.lang.StringIndexOutOf BoundsException: String index out of range: 0 at java.lang.String.charAt(Unknown Source)
at Funcoes.main(Funcoes.java:13)

O código é meio grande então aqui está a parte onde ocorre a pergunta:

System.out.print("Deseja voltar ao inicio?(S/N)\n"+"> ");
        e = ent.next().charAt(0);
        switch(e){
            case 'S':
                continue;
            case 'N':case 'n':
                escolha = false;
        }

Obs: No caso escolhi Switch mas tentei com While tbm e não funciona com o ‘S’.

Faz o seguinte:

System.out.print("Deseja voltar ao inicio?(S/N)\n"+"> ");
String voltarAoInicio = ent.next();
switch(voltarAoInicio) {
  case "S":
  case "s":
    escolha = true;
    break; // sai do switch/case
  case "N":
  case "n":
    escolha = false;
    break; // sai do switch/case
}
System.out.println("Resposta: '" + voltarAoInicio + "'");
if (escolha == true) {
    continue;  // continua no while
} else {
    break; // sai do while
}

Não funcionou, continua o mesmo erro do código amigo.

import java.util.Scanner;

public class Funcoes{
public static void main(String[] args){
Scanner ent = new Scanner(System.in);
float a,b,c,delta,x1,x2,y;
char f,e;
boolean escolha = true;

    System.out.println("-----Cálculo das Funcoes-----\n");
    while(escolha){
        System.out.print("Escolha a funcao para calcular(1 - 1ºgrau // 2- 2ºgrau\n" +"> ");
        f = ent.nextLine().charAt(0);
        
        if (f == '1'){//Escolha pra Função Afim
                System.out.println("---Calculo da Funcao Afim(1º Grau)---");
                System.out.println("Formula: ax + b = y");
                System.out.print("Digite o valor de 'a': ");
                a = ent.nextFloat();
                System.out.print("Digite o valor de 'b': ");
                b = ent.nextFloat();
                System.out.print("Digite um valor para 'x': ");
                x1 = ent.nextFloat();
                System.out.print("Digite outro valor pra 'x': ");
                x2 = ent.nextFloat();
                System.out.printf("Sua formula é %.1fx + %.1f = y\n",a,b);
                y = (a*x1) + b;
                System.out.printf("Para x = %.1f, y = %.1f\n",x1,y);
                y = (a*x2) + b;
                System.out.printf("Para x = %.1f, y = %.1f\n",x2,y);
        }
        
        else if (f == '2'){ //Escolha pra Função do 2º Grau
                System.out.println("---Calculo da Funcao Quadratica(2º Grau)---");
                System.out.println("Formula: ax² + bx + c = y");
                System.out.print("Digite o valor de 'a': ");
                a = ent.nextFloat();
            if(a > 0 || a < 0){
                    System.out.print("Digite o valor de 'b': ");
                    b = ent.nextFloat();
                    System.out.print("Digite o valor de 'c': ");
                    c = ent.nextFloat();
                    System.out.printf("Sua formula e %.1fx² + %.1fx + %.1f = y",a,b,c);
                    delta = (b*b)- (4*a*c);
                        if (delta < 0){
                            System.out.printf("Delta = %.1f. Delta negativo nao ha raizes.\n",delta);
                        }
                        else if (delta > 0){
                        x1 = (-(b) + (delta*1/2))/2*a;
                        x2 = (-(b) - (delta*1/2))/2*a;
                        System.out.printf("\nDelta = %.1f. As raízes da formula sao %.1f e %.1f\n",delta,x1,x2);
                        }
                        else{
                            x1 = (-(b) + (delta*1/2))/2*a;
                            System.out.printf("Delta = 0. Delta igual a zero, raizes iguais a %.1f\n",x1);
                        }
        }
        else{
            System.out.println("Função inválida! Função de 2º Grau não possui a = 0.");
        }
    }
    else{
                System.out.println("Digite uma escolha válida!!");
    }
    System.out.print("Deseja voltar ao inicio?(S/N)\n"+"> ");
    e = ent.next().charAt(0);
    switch(e){
        case 'S':case 's':
            continue;
        case 'N':case 'n':
            escolha = false;
    }
    }
}

}

este é o código

Onde está ent.nextLine() troque por ent.next()

Deu certo, mt obrigado amigo. :smile: