输出
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.Scanner
,import
是导入某个类的语句,必须放到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); // 格式化输出
}
}