注意:System.in只能接收单个字符,并且输出字符的ASCLL值。如果需要输出字符,需要进行强制类型转换。
接收一个数字
public static void scaneNum(){
int scane = 0;
System.out.print("请输入数据:");
try {
scane = System.in.read();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("输入的数据为:" + scane);
}
运行结果:只接收第一个数字
接收一个字符
public static void scaneChar(){
char scane = '0';
System.out.print("请输入数据:");
try {
scane = (char)System.in.read();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("输入的数据为:" + scane);
}
运行结果:只接收第一个字符
package testScane;
public class test {
public static void main(String[] args) {
//scaneNum();
scaneChar();
}
public static void scaneNum(){
int scane = 0;
System.out.print("请输入数据:");
try {
scane = System.in.read();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("输入的数据为:" + scane);
}
public static void scaneChar(){
char scane = '0';
System.out.print("请输入数据:");
try {
scane = (char)System.in.read();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("输入的数据为:" + scane);
}
}
2. 获取一行字符串输入:Scanner
注意:在使用Scanner时候,需要导入util中的Scanner包。
① next()方法用以获得用户输入的字符串
② nextInt()将取得的输入字符串转换为整数类型
③ nextFloat()转换成浮点型(默认保留两位小数)
④ nextBoolean()转换为布尔型
package testScane;
import java.util.Scanner;
public class test1 {
public static void main(String[] args) {
scane();
scaneInt();
scaneFloat();
scaneBool();
}
public static void scane() {
System.out.print("请输入数据:");
Scanner scan = new Scanner(System.in);
String read = scan.nextLine();
System.out.println("输入的数据为:" + read);
}
public static void scaneInt() {
System.out.print("请输入整形数据:");
Scanner scan = new Scanner(System.in);
int scanInt = scan.nextInt();
System.out.println("输入的数据为:" + scanInt);
}
public static void scaneFloat() {
System.out.print("请输入浮点型数据:");
Scanner scan = new Scanner(System.in);
float scanFloat = scan.nextFloat();
System.out.println("输入的数据为:" + scanFloat);
}
public static void scaneBool() {
System.out.print("请输入数据:");
Scanner scan = new Scanner(System.in);
boolean scanBoolean = scan.nextBoolean();
System.out.println("输入的数据为:" + scanBoolean);
}
}
运行结果:
注意:next()和nextLine()的区别
- next()方法不接收空格,在接收到有效数据之前,所有的空格、tab键等输入都会被忽略掉。而在接收到第一个有效数据后,如果按下空格或tab,之后任何输入都无效,直到按到回车退出。
- nextLine()可以接收空格或者tab键,其输入以enter键结束。
package testScane;
import java.util.Scanner;
public class test4 {
public static void main(String[] args) {
scan1();
scan2();
}
public static void scan1(){
Scanner scan = new Scanner(System.in);
String str = scan.next();
System.out.println(str);
}
public static void scan2(){
Scanner scan = new Scanner(System.in);
String str = scan.nextLine();
System.out.println(str);
}
}
运行结果:
3. 获取一行字符串输入:BufferedReaderpackage testScane;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class test3 {
public static void main(String[] args) throws IOException {
scane();
}
public static void scane() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String scane = null;
System.out.print("输入数据:");
scane = br.readLine();
System.out.println("您输入的数据为:" + scane);
}
}
运行结果: