[HackerRank]Java輸出格式化(Java Output Formatting)

題目描述

Java的輸出串流物件所提供的「printf」方法,可以被用來將輸出的內容格式化。這個題目將會測試您對於格式化輸出的了解程度。

原題網址

https://www.hackerrank.com/challenges/java-output-formatting

輸入格式

每一行輸入中都含有一個字串,後面接著一個整數。每個字串的最大長度是10個字元,每個整數的範圍在0到999(包括0和999)之間。

輸出格式

每一行輸出都有兩個欄位:第一個欄位包含了輸入的字串和空格,字串加空格的長度為15個字元。第二個欄位包含輸入的整數,固定為三位數,不足三位數的話要在左邊補0。

範例輸入

java 100
cpp 65
python 50

範例輸出

================================
java 100
cpp 065
python 050
================================

額外解釋

每行輸出中的字串都是靠左對齊,若未滿15個字元會在右邊用空格來補足。每行的第16個字元開始為輸入的整數,整數固定都為三位數,未滿三位數字的整數要補零至左邊的位數。

解題概念

不熟悉格式化輸出的話,可能會覺得這題十分麻煩,還要計算空格的數量和整數的位數。實際上,在格式化字串的時候,可以順便指定資料格式的長度。如「%d」,表示整數資料;而「%5d」會預留至少5個字元的長度來給整數使用,若有不足的位數會在左邊填上空格;「%05d」同樣會預留至少5個字元的長度來給整數使用,但若有不足的位數則會在左邊填上「0」;「%-5d」也是會預留至少5個字元的長度來給整數使用,但若有不足的位數是在右邊填上空格。這套規則除了補0的部份外,也能用在「%s」的字串資料。

熟悉格式化輸出之後,就可以很直覺的反應出這題的輸出格式要如何完成了!

參考答案

關於作者

Magic Len

各位好,我是Magic Len,是這網站的管理員。我是台灣台中大肚山上人,畢業於台中高工資訊科和台灣科技大學資訊工程系,曾在桃機航警局服役。我熱愛自然也熱愛科學,喜歡和別人分享自己的知識與經驗。如果你有興趣認識我,可以加我的Facebook,並且請註明是從MagicLen來的。

相關文章