JAVA筆記(12)——輸入和輸出

weixin_46722612發表於2020-11-18

輸出

println是print line的縮寫,表示輸出並換行。因此,如果輸出後不想換行,可以用print():

public class Main {
    public static void main(String[] args) {
        System.out.print("A,");
        System.out.print("B,");
        System.out.print("C.");
        System.out.println();
        System.out.println("END");
    }
}

格式化輸出

Java還提供了格式化輸出的功能。為什麼要格式化輸出?因為計算機表示的資料不一定適合人來閱讀:

public class Main {
    public static void main(String[] args) {
        double d = 12900000;
        System.out.println(d); // 1.29E7
    }
}

如果要把資料顯示成我們期望的格式,就需要使用格式化輸出的功能。格式化輸出使用System.out.printf(),通過使用佔位符%?,printf()可以把後面的引數格式化成指定格式:

public class Main {
    public static void main(String[] args) {
        double d = 3.1415926;
        System.out.printf("%.2f\n", d); // 顯示兩位小數3.14
        System.out.printf("%.4f\n", d); // 顯示4位小數3.1416
    }
}

Java的格式化功能提供了多種佔位符,可以把各種資料型別“格式化”成指定的字串:
在這裡插入圖片描述
注意,由於%表示佔位符,因此,連續兩個%%表示一個%字元本身。

佔位符本身還可以有更詳細的格式化引數。下面的例子把一個整數格式化成十六進位制,並用0補足8位:

public class Main {
    public static void main(String[] args) {
        int n = 12345000;
        System.out.printf("n=%d, hex=%08x", n, n); // 注意,兩個%佔位符必須傳入兩個數
    }
}

輸入

控制檯讀取一個字串和一個整數的例子:

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in); // 建立Scanner物件
        System.out.print("Input your name: "); // 列印提示
        String name = scanner.nextLine(); // 讀取一行輸入並獲取字串
        System.out.print("Input your age: "); // 列印提示
        int age = scanner.nextInt(); // 讀取一行輸入並獲取整數
        System.out.printf("Hi, %s, you are %d\n", name, age); // 格式化輸出
    }
}

首先,我們通過import語句匯入java.util.Scanner

然後,建立Scanner物件並傳入System.in。System.out代表標準輸出流,而System.in代表標準輸入流。直接使用System.in讀取使用者輸入雖然是可以的,但需要更復雜的程式碼,而通過Scanner就可以簡化後續的程式碼。

有了Scanner物件後,要讀取使用者輸入的字串,使用scanner.nextLine(),要讀取使用者輸入的整數,使用scanner.nextInt()。Scanner會自動轉換資料型別,因此不必手動轉換。

要測試輸入,我們不能線上執行它,因為輸入必須從命令列讀取,因此,需要走編譯、執行的流程:

$ javac Main.java

執行

$ java Main
Input your name: Bob
Input your age: 12
Hi, Bob, you are 12

根據提示分別輸入一個字串和整數後,我們得到了格式化的輸出。

相關文章