输出

System.out.println()
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");
    }
}
//输出
A,B,C.
END 

格式化输出

格式化输出使用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
    }
}

占位符 功能
%d 格式化输出整数
%o 整数结果被格式化为八进制整数
%x 格式化输出十六进制整数
%f 格式化输出浮点数
%e 格式化输出科学计数法表示的浮点数
%g 根据精度和舍入运算后的值,使用计算机科学记数形式或十进制格式对结果进行格式化
%s 格式化字符串
%a 结果被格式化为带有效位数和指数的十六进制浮点数

由于%表示占位符,因此,连续两个%%表示一个%字符本身

把一个整数格式化成十六进制,并用0补足8位

public class Main {
    public static void main(String[] args) {
        int n = 12345000;
        System.out.printf("n=%d, hex=%08x", n, n); // 注意,两个%占位符必须传入两个数,n=12345000,hex=00bc5ea8
    }
}

补充

// 占位符指定使用哪个参数填充值 
System.out.printf("%2$s %2$s %1$s \n", "111", "222"); 
// 111 111 222 

// 浮点数保留小数点后尾数(四舍五入取整) 
System.out.printf("%.2f \n", 1.256F); 
// 1.23 

// 千分位分割输出整型 
System.out.printf("%,d \n", 12345678); 
// 12,345,678 

// 默认右对齐 
System.out.printf("%12d| %15d| \n", 12345678, 666666666); 
// 左对齐,不足补空格 
System.out.printf("%-12d| %-15d| \n", 12345678, 666666666); 
System.out.println(); 

// '%%'输出百分号%% 
System.out.printf("%d%% \n", 58); 

// 不足位补零 
System.out.printf("%05d \n", 98); 
// 00058 

// 负数将添加括号 
System.out.printf("%(d \n", -98); 
// (98) 

System.out.printf("%tF \n", System.currentTimeMillis()); 
// 14:28:07 

System.out.printf("%tT \n", System.currentTimeMillis()); 
// 2013-08-15

输入

通过import语句导入java.util.Scannerimport是导入某个类的语句,必须放到Java源代码的开头

创建Scanner对象并传入System.in,System.out代表标准输出流,而System.in代表标准输入流。直接使用System.in读取用户输入虽然是可以的,但需要更复杂的代码,而通过Scanner就可以简化后续的代码

有了Scanner对象后,要读取用户输入的字符串,使用scanner.nextLine(),要读取用户输入的整数,使用scanner.nextInt()。Scanner会自动转换数据类型,因此不必手动转换
scanner.nextLine() / nextInt() / nextDouble() / ...

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); // 格式化输出
    }
}
THE END
最后修改:2020 年 03 月 17 日 19 : 04
本文链接:https://www.j000e.com/%E5%9F%BA%E7%A1%80/Inputandoutput.html
版权声明:本文『[输入和输出][格式化输出]』为『Joe』原创。著作权归作者所有。
转载说明:[输入和输出][格式化输出] || Joe's Blog』转载许可类型见文末右下角标识。允许规范转载时,转载文章需注明原文出处及地址。
Last modification:March 17, 2020