題目描述

在大多數的HackerRank題目挑戰中,您必須從標準輸入串流(stdin, standard input)中讀取資料,並將結果輸出到標準輸出串流(stdout, standard output)。



Java的標準輸入串流物件為「System.in」,可以使用「Scanner」類別來讀取其中的資料,也可以使用「BufferedReader」和「InputStreamReader」類別來讀取。標準輸出串流物件為「System.out」,可以直接使用物件提供的「print」、「println」、「printf」等相關方法將字串輸出到標準輸出串流中。

在這個題目中,您必須要從標準輸入串流讀取一些資料,並且將它們輸出至標準輸出串流。

原題網址

輸入格式

一共三行輸入。第一行是一個整數;第二行是一個雙倍精準浮點數;第三行是一個字串。

輸出格式

輸出有三行。第一行先輸出「String: 」,後面接著輸出第三行輸入的字串。第二行先輸出「Double: 」,後面接著輸出第二行輸入的雙倍精準浮點數。第三行先輸出「Int: 」,後面接著輸出第一行輸入的整數。

範例輸入

42
3.1415
Welcome to HackerRank Java tutorials!

範例輸出

String: Welcome to HackerRank Java tutorials!
Double: 3.1415
Int: 42

解題概念

這題可以使用「BufferedReader」類別,並搭配「InputStreamReader」來練習讀取輸入串流。從輸入串流中以「行」為單位來讀取字串資料,再將讀取到的字串資料轉成其他資料格式,最後再使用標準輸出串流物件提供的「println」方法,將資料輸出至標準輸出串流。

參考答案

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Solution {

    public static void main(final String[] args) throws IOException {
        final int x;
        final double y;
        final String s;
        try (BufferedReader br = new BufferedReader(new InputStreamReader(System.in))) {
            x = Integer.parseInt(br.readLine());
            y = Double.parseDouble(br.readLine());
            s = br.readLine();
        }

        System.out.println("String: " + s);
        System.out.println("Double: " + y);
        System.out.println("Int: " + x);
    }
}