12-基本输入与输出

目录

1.输出到控制台

2.从键盘输入

2.1.旧:直接使用System.in.read可以读入一个字符,但是需要搭配异常处理。

2.2.新:使用JDK提供的Scanner类下的不同方法来读取字符串/整数/浮点数以及循环读取N个数字

PS:从键盘读入一个字符串有两种方式:next()与nextLine(),它们异同如下:


1.输出到控制台

System.out.println(msg); // 输出一个字符串,带换行
System.out.println("Hello Java"); // 输出后换行

System.out.print(msg); // 输出一个字符串,不换行,加\n换行
System.out.print("Hello World"); // 输出不换行
System.out.print("Hello World\n"); // 与println效果相同

System.out.printf(format,msg); // 格式化输出,输出方式与C语言基本相同,不换行
System.out.printf("%d",15); // 格式化输出,不换行
System.out.printf("%d\n",15); // 换行

格式化字符串(常用占位符):(无须记忆,即用即查)

转换符类型使用方法输出结果
d十进制整数("%d", 100)100
x十六进制整数("%x", 100)64
o八进制整数("%o", 100)144
f定点浮点数("%f", 100f)100.000000
e指数浮点数("%e", 100f)1.000000e+02
g通用浮点数("%g", 100f)100.000
a十六进制浮点数("%a", 100)0×1.9p6
s字符串("%s", 100)100
c字符("%c", '1')1
b布尔值("%b", 100)true
h散列码("%h", 100)64
%百分号("%.2f%%", 2/7f)0.29%

2.从键盘输入

2.1.旧:直接使用System.in.read可以读入一个字符,但是需要搭配异常处理。

read返回一个int类型的值,在Java中所有小于4字节的会变为int,所以要进行强转。

计算机内部字符和int可互换。(ASCII码)

错误:

System.out.print("Enter a Char:");
char i = (char) System.in.read();
System.out.println("your char is :" + i);
// 编译出错
Test.java:4: 错误: 未报告的异常错误IOException; 必须对其进行捕获或声明以便抛出

正确:

import java.io.IOException; //需要导入IOException包

try{
   System.out.print("Enter a Char:");
   char i = (char) System.in.read();
   System.out.println("your char is :" + i);
}catch(IOException e){
   System.out.println("exception");
}

这种方法很麻烦,不推荐使用。

2.2.新:使用JDK提供的Scanner类下的不同方法来读取字符串/整数/浮点数以及循环读取N个数字

import java.util.Scanner; //需要导入util包引入Scanner类

Scanner scanner = new Scanner(System.in); //声明一个输入类的对象(对象名称scanner可以自己设定)
//数据类型 变量名称 = scanner.next数据类型( );

String str1 = scanner.next(); //从键盘读入一个字符串
String str2 = scanner.nextLine(); //从键盘读入一个字符串

int num1 = scanner.nextInt(); //从键盘读入一个整数

float num2 = scanner.nextFloat(); //从键盘读入一个单精度浮点数
double num3 = scanner.nextDouble(); //从键盘读入一个双精度浮点数

//用scanner.hasNext数据类型 判断是否还有输入的数据
while (scanner.hasNextDouble()) {
       double num4 = scanner.nextDouble();
}

sc.close(); //注意, 要记得调用关闭方法

PS:从键盘读入一个字符串有两种方式:next()与nextLine(),它们异同如下:

同:

next() 和 nextLine() 读取的结果都是 String 类型,返回 String 类型。

异:

(简单点说,next我只要字,nextLine我啥都要)

next()

  • next()方法在读取内容时,会过滤掉有效字符前面的无效字符,对输入有效字符之前遇到的空格键、Tab键或Enter键等结束符,next()方法会自动将其过滤掉。
  • 只有在读取到有效字符之后,next()方法才将其后的空格键、Tab键或Enter键等视为结束符
  • 所以next()方法不能得到带空格的字符串。

nextLine()

  • nextLine()方法字面上有扫描一整行的意思,它的结束符只能是Enter键
  • 即nextLine()方法返回的是Enter键之前所有带空格的字符串。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值