
# Java Scanner
## importação
```java=
import java.util.Scanner;
```
## Instanciando objeto Scanner
```java=
Scanner scanner = new Scanner(System.in);
```
## Leitura em variáveis
É acessado os métodos de leitura, através da variável de instância.
### Exemplo 1
**Entrada**
```java=
import java.util.Scanner;
public class Exemplo1 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("Digite seu nome:");
nomeCompleto = scanner.nextLine();
System.out.println("Bem-vindo(a) " + nomeCompleto);
scanner.close();
}
}
```
**Saída**
```
Digite seu nome:
Roger
Bem-vindo(a) Roger
```
### Exemplo 2
```java=
import java.util.Scanner;
public class Exemplo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// Outras entradas
int idade = scanner.nextInt();
long codigoBarras = scanner.nextLong();
float altura = scanner.nextFloat();
double salario = scanner.nextDouble();
boolean flagAmbiente = scanner.nextBoolean();
byte byteImage = scanner.nextByte();
scanner.close();
}
}
```
## Método hasNext
**Entrada**
```java=
public class Exemplo2 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int i = 0;
System.out.print("Digite um texto:");
while(scanner.hasNext()){
System.out.println("Texto: "+ scanner.next());
i++;
}
scanner.close();
}
}
```
**Saída**
```
Digite um texto: Olá
Texto: Olá
Mastertech
Texto: Mastertech
Itaú
Texto: Itaú
```
## Consulta de outros métodos
| Método | Descrição |
| -------- | -------- |
| close() | Fecha o escaneamento de leitura.|
|findInLine() |Encontra a próxima ocorrência de um padrão ignorando máscaras ou strings ignorando delimitadores.|
|hasNext()| Retorna um valor booleano verdadeiro (true) se o objeto Scanner tem mais dados de entrada.|
|hasNextXyz()| Retorna um valor booleano como verdadeiro (true) se a próxima entrada a qual Xyz pode ser interceptada como Boolean, Byte, Short, Int, Long, Float ou Double.|
|match() |Retorna o resultado da pesquisa do último objeto Scanner atual.|
|next() |Procura e retorna a próxima informação do objeto Scanner que satisfazer uma condição.|
|nextBigDecimal(), nextBigInteger() |Procura a próxima entrada como BigDecimal ou BigInteger.|
|nextXyz() |Procura a próxima entrada a qual Xyz pode ser interceptado como boolean, byte, short, int, long, float ou double.|
|nextLine() |Mostra a linha atual do objeto Scanner e avança para a próxima linha.|
|radix() |Retorna o índice atual do objeto Scanner.|
|remove() |Essa operação não é suportada pela implementação de um Iterator.|
|skip() |Salta para a próxima pesquisa de um padrão especificado ignorando delimitadores.|
|string() |Retorna uma string que é uma representação do objeto Scanner.|
# Casting
Conversão de tipos
**Casting automático**
```java=
public class ExemploCasting {
public static void main(String[] args) {
int valorInteiro = 12;
double valorConvertido = valorInteiro;
System.out.println(valorInteiro);//12
System.out.println(valorConvertido);//12.0
}
}
```
**Narrowing Casting**
```java=
public class ExemploCasting {
public static void main(String[] args) {
double valorDecimal = 12.2;
int valorConvertido = (int)valorInteiro;
System.out.println(valorDecimal);//12.2
System.out.println(valorConvertido);//12
}
}
```