import java.util.Scanner;
public class InOutDemo
{
public static void main(String[] args)
{
//通过控制台进行输入,首先要构造一个Scanner对象,并与“标准输入流”System.in关联
Scanner input=new Scanner(System.in);
System.out.println("***********输入**************");
String str1=input.nextLine(); //读取输入的下一行内容
int a=input.nextInt(); //读取下一个表示整数的字符序列
Double b=input.nextDouble(); //读取下一个表示浮点数的字符序列
String str2=input.next(); //读取下一个单词,以空格结束
System.out.println("***********输出**************");
System.out.println(input.hasNext()); //boolean hasNext() :检测输入中是否还有其他单词
System.out.println(input.hasNextInt()); //boolean hasNextInt() :检测输入中是否还有表示整数的下一个字符序列。
System.out.println(input.hasNextDouble()); //boolean hasNextDouble() :检测输入中是否还有表示浮点数的下一个字符序列。
System.out.println("str1="+str1);
System.out.println("str2="+str2);
System.out.println("a="+a);
System.out.println("b="+b);
/*格式化输出:类似C的printf()函数
格式:%[[参数索引值$][标志]][宽度][.精度]转换字符
*/
/*1.转换字符: b 布尔值
h 散列码
tx或Tx 时间日期
*/
System.out.println("***********输出**************");
boolean b1=true;
System.out.printf("b1=%b\n",b1);
/*2.标志
( 如果是负数,将负数括在括号内,正数不变
, 添加分组分隔符
$ 给定被格式化的参数索引,即把第几个数按什么格式输出
< 格式化前面说明的数值,如%d%<%x 以十六进制打印前面以%d打印的数值
*/
long a1=200_000_000_888_888_888L;
System.out.printf("负数:%(f,正数:%(f\n",-345.45,345.45);
System.out.printf("%,d\n",a1);
System.out.printf("%2$d,%2$#x\n",109,34);
System.out.printf("十进制:%d 十六进制:%<#x\n",34);
}
}
运行结果
其他的输出格式和C语言的printf大致相同:参考C语言-printf()函数