C++中可以用输入流cin轻松的完成对int,char,String,double等等基本数据类型的输入,而JAVA中则必须使用Scanner类。
头文件java.util.Scanner,对于其他的数据类型Scanner类提供了直接的函数使用。比如:
Scanner cin = new Scanner(System.in) ;
int t = cin.nextInt();
然后Scanner 并没有提供对char类型的输入函数。那么这里我们要怎样完成对char类型的输入呢?
这里提供两种基本方法:
方法一: 利用nextInt()间接完成输入,即nextInt()输入ASC码再强制转换为char输出。
package main.test;
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner cin = new Scanner(System.in);
char c = (char)cin.nextInt();
System.out.println(c);
}
}
system.in.read()方法的作用是从键盘读出一个字符,然后返回它的Unicode码。
package main.test;
import java.io.IOException;
class Main{
public static void main(String[] args) throws IOException{
char c = (char)System.in.read();
System.out.println(c);
}
}
拓展:关于System.in.read()的使用
system.in.read()方法的作用是从键盘读出一个字符,然后返回它的Unicode码。关于System.in.read()需要注意,我们在键盘上按下的任何一个键都会被当做是输入值,包括Enter键也会被当做是一个值!当我们按下Enter的时候,实际上发送两个键值:一个回车\t(13),一个是换行\n(10)例如如下代码:
package main.test;
import java.io.IOException;
class Main{
public static void main(String[] args) throws IOException{
for(int i = 0;i<5;i++){
char c = (char)System.in.read();
System.out.println(c);}
}
}
输入输出为
A
A
B
B
只有输入两个而已,而不是预想的输入五个。
A
B
B
只有输入两个而已,而不是预想的输入五个。