String name = "张三";
int age = 25;
System.out.printf("姓名: %s, 年龄: %d", name, age);
解析
printf方法会将格式符替换为对应的值:%s替换为字符串"张三",%d替换为整数25。
Scanner scanner = new Scanner(System.in);
System.out.print("输入年龄: ");
int age = scanner.nextInt();
System.out.print("输入姓名: ");
String name = scanner.nextLine();
解析
nextInt()只读取数字,不消费换行符。当nextLine()执行时,会读取到剩余的换行符,导致读取到空字符串。解决方法是在nextInt()后添加scanner.nextLine()清除缓冲区。
System.out.printf("%10s|", "Java");
System.out.printf("%-10s|", "Java");
解析
%10s表示右对齐,总宽度10个字符;%-10s表示左对齐,总宽度10个字符。"Java"有4个字符,所以会补6个空格。