Para que serve a classe Scanner no Java?
Estou fazendo uma lista de exercícios de lógica no Java e gostaria de saber qual a funcionalidade da classe Scanner.
Scanner sc = new Scanner(System.in);
No caso do "sc", posso usar qualquer outro nome ou "sc" é padrão?
class Main{
public static void main(String[] args){
Scanner nomeObjetoScanner; //assim você coloca o nome do objeto Scanner
// apos colocar o nome, você deve construir o objeto
nomeObjetoScanner = new Scanner(System.in);
// para ler numeros interos, você utiliza assim: nomeObjetoScanner.nextInt();
int inteiro = nomeObjetoScanner.nextInt();
// para ler numeros long, você utiliza assim: nomeObjetoScanner.nextLong();
long longo = nomeObjetoScanner.nextLong();
// para ler numeros double, você utiliza assim: nomeObjetoScanner.nextDouble();
double decimal = nomeObjetoScanner.nextDouble();
// para ler numeros float, você utiliza assim: nomeObjetoScanner.nextFloat();
float pontoFlutuante = nomeObjetoScanner.nextFloat();
// para ler a proxima palavra, você utiliza assim: nomeObjetoScanner.next();
String palavra = nomeObjetoScanner.next();
// para ler a proxima linha, você utiliza assim: nomeObjetoScanner.nextLine();
String linha = nomeObjetoScanner.nextLine();
}
}
Então, Scanner é uma classe voltada para a leitura de inputs via terminal. Inclusive esse System.in que você passa no construtor é um objeto que indica que a leitura deve ser realizada a partir do que é escrito através do teclado.
No devmedia tem um post sobre essa classe em específico. Pode ser vista uma explicação mais formal por lá. https://www.devmedia.com.br/como-funciona-a-classe-scanner-do-java/28448
Sobre o objeto do scan, nada te impede de utilizar outros nomes para o scanner que não sc. Contudo, sc é o nome normatizado pela comunidade, ou seja, nas documentações mundo afora você vai ver praticamente só sc e variações.