
Java Stdin And Stdout II
Neste desafio, você deve ler um inteiro, um duplo e uma String do stdin e, em seguida, imprimir os valores de acordo com as instruções na seção Formato de saída abaixo. Para tornar o problema um pouco mais fácil, uma parte do código é fornecida no editor.
- Douglas MatosNeste desafio, você deve ler um inteiro, um duplo e uma String do stdin e, em seguida, imprimir os valores de acordo com as instruções na seção Formato de saída abaixo. Para tornar o problema um pouco mais fácil, uma parte do código é fornecida no editor.
Observação: Recomendamos completar Java Stdin e Stdout I antes de tentar este desafio.
Formato de entrada
Existem três linhas de entrada:
- A primeira linha contém um número inteiro.
- A segunda linha contém um duplo.
- A terceira linha contém uma String.
Formato de saída
Existem três linhas de saída:
- Na primeira linha, imprima String: seguido pela String inalterada lida em stdin.
- Na segunda linha, imprima Double: seguido pela leitura dupla inalterada de stdin.
- Na terceira linha, imprima Int: seguido pelo número inteiro inalterado lido em stdin.
Para facilitar o problema, uma parte do código já vem fornecida no editor.
Observação: Se você usar o método nextLine() imediatamente após o método nextInt(), lembre-se de que nextInt() lê tokens inteiros; por causa disso, o último caractere de nova linha para aquela linha de entrada inteira ainda está na fila no buffer de entrada e a próxima nextLine() estará lendo o restante da linha inteira (que está vazia).
Exemplo de entrada
bash42 3.1415 Welcome to HackerRank's Java tutorials!
Exemplo de saída
bashString: Welcome to HackerRank's Java tutorials! Double: 3.1415 Int: 42
Solução
Este desafio tem um código inicial, que devemos dar continuidade, veja abaixo.
Javaimport java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int i = scan.nextInt(); // Write your code here. System.out.println("String: " + s); System.out.println("Double: " + d); System.out.println("Int: " + i); } }
Lendo um valor double
Javaimport java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int i = scan.nextInt(); double d = scan.nextDouble(); System.out.println("String: " + s); System.out.println("Double: " + d); System.out.println("Int: " + i); } }
Lendo um valor string
Javaimport java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int i = scan.nextInt(); double d = scan.nextDouble(); scan.nextLine(); String s = scan.nextLine(); System.out.println("String: " + s); System.out.println("Double: " + d); System.out.println("Int: " + i); } }
scan.nextLine(); é necessário porque:
Nota: Se você usar o método nextLine() imediatamente após o método nextInt(), lembre-se de que nextInt() lê tokens inteiros; por causa disso, o último caractere de nova linha para aquela linha de entrada inteira ainda está na fila no buffer de entrada e a próxima nextLine() estará lendo o restante da linha inteira (que está vazia).
Agora, imprima todos os valores e feche o Scanner
Javaimport java.util.Scanner; public class Solution { public static void main(String[] args) { Scanner scan = new Scanner(System.in); int i = scan.nextInt(); double d = scan.nextDouble(); scan.nextLine(); String s = scan.nextLine(); System.out.println("String: " + s); System.out.println("Double: " + d); System.out.println("Int: " + i); scan.close(); } }