JAVA中关于键盘输入的几个问题
2011-04-15 13:44
585 查看
在程序开发过程中,我们经常需要从键盘获取输入值,最常用的就是JAVA自身提花的一些方法。例如Scanner类的对象等。它的使用方法很简单:
Import java.util.Scanner;
public static void main(String [] args) {
Scanner imput = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = imput.nextLine();
}
但是很多时候这个方法有时候却不太实用,例如我想从键盘输入一个字符。我们知道JAVA没有直接输入字符的方法,所以很多时候我们只能这采用以下方法:
1.
public static void main(String [] args) throws IOException{
System.out.print("Enter a Char:");
char i = (char) System.in.read();
System.out.println("your char is :"+i);
}
这里,throws IOException是指当发生某种 I/O 异常时,抛出此异常。此类为异常的通用类,它是由失败的或中断的 I/O 操作生成的。
2.我们还可以用BufferedReader类和InputStreamReader类 :
public static void main(String [] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
System.out.println("Enter your value:");
str = br.readLine();
System.out.println("your value is :"+str);
}
这只是对于字符型的输入的几种方法,如果我们想从键盘输入数字,方法除了Scanner,上面的方法也可以:
public static void main(String [] args) throws IOException{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(reader.readLine());
System.out.println("a=" + a);
int sum = 0;
for (int i = 0; i <= a; i++)
sum += i;
System.out.println(sum);
}
Integer.parseInt是指将输入的内容强制转换为整形,但是如果输入是字符的时候系统就会报异常,对于这个问题,解决的方法可以:
public static void main(String[] args) {
// TODO 自动生成方法存根
Scanner input=new Scanner(System.in);
System.out.println("请输入数字");
String an="y";
int num;
while(an.equalsIgnoreCase("y")){
try{
int a=Integer.parseInt(input.next());
if(a>=1 && a<=4){
an="n";
}
else{
System.out.println("数字不符合要求,重新输入");
}
}
catch(Exception e){
System.out.println("你输入的不是数字,请重新输入");
System.out.println("是不是要继续?y/n");
}
}
System.out.println("欢迎进入到系统");
}
这样,通过一个异常处理就能做到循环输入,如果是数字,并且是1-3程序就正常运行,如果不是1-3就循环输入,如果输入的不是数字就报“你输入的不是数字,请重新输入”;
上面几个方法,就可以解决一些日常的输入需要了。
Import java.util.Scanner;
public static void main(String [] args) {
Scanner imput = new Scanner(System.in);
System.out.println("请输入你的姓名:");
String name = imput.nextLine();
}
但是很多时候这个方法有时候却不太实用,例如我想从键盘输入一个字符。我们知道JAVA没有直接输入字符的方法,所以很多时候我们只能这采用以下方法:
1.
public static void main(String [] args) throws IOException{
System.out.print("Enter a Char:");
char i = (char) System.in.read();
System.out.println("your char is :"+i);
}
这里,throws IOException是指当发生某种 I/O 异常时,抛出此异常。此类为异常的通用类,它是由失败的或中断的 I/O 操作生成的。
2.我们还可以用BufferedReader类和InputStreamReader类 :
public static void main(String [] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String str = null;
System.out.println("Enter your value:");
str = br.readLine();
System.out.println("your value is :"+str);
}
这只是对于字符型的输入的几种方法,如果我们想从键盘输入数字,方法除了Scanner,上面的方法也可以:
public static void main(String [] args) throws IOException{
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
int a = Integer.parseInt(reader.readLine());
System.out.println("a=" + a);
int sum = 0;
for (int i = 0; i <= a; i++)
sum += i;
System.out.println(sum);
}
Integer.parseInt是指将输入的内容强制转换为整形,但是如果输入是字符的时候系统就会报异常,对于这个问题,解决的方法可以:
public static void main(String[] args) {
// TODO 自动生成方法存根
Scanner input=new Scanner(System.in);
System.out.println("请输入数字");
String an="y";
int num;
while(an.equalsIgnoreCase("y")){
try{
int a=Integer.parseInt(input.next());
if(a>=1 && a<=4){
an="n";
}
else{
System.out.println("数字不符合要求,重新输入");
}
}
catch(Exception e){
System.out.println("你输入的不是数字,请重新输入");
System.out.println("是不是要继续?y/n");
}
}
System.out.println("欢迎进入到系统");
}
这样,通过一个异常处理就能做到循环输入,如果是数字,并且是1-3程序就正常运行,如果不是1-3就循环输入,如果输入的不是数字就报“你输入的不是数字,请重新输入”;
上面几个方法,就可以解决一些日常的输入需要了。
相关文章推荐
- 刚学java的小白想问个关于读取键盘输入数字的问题
- Java中几个关于日期计算的问题
- 小白请教几个关于Java虚拟机内存分配策略的问题
- Java求解,输入两个整数n和m,从数列1,2,3,……n中随意取几个数,使其和等于m。要求将所有的可能组合列出来(背包动态规划问题求解)
- 关于fgets从键盘读取,直接跳过键盘输入的问题
- 关于输入scanf()中缓冲区的几个问题
- 关于XhsEmoticonsKeyboard仿微信表情键盘,某些情况下输入字符崩溃问题解决办法
- 关于 vs 2012 键盘无法输入的问题
- 今日的问题:关于java.util包的几个问题?
- 关于java Scanner 输入无法结束的问题
- java中几个常见的关于日期的问题
- 关于解决键盘快速输入问题的(keyboard input issue)的突破的体会
- Java中父类和子类关于构造方法和私有属性的几个问题
- 关于Java中String的几个小问题
- 关于Java反射机制的几个问题
- 关于C语言使用输入函数后键盘缓冲区还有多余字符没的问题
- 关于在ORACLE下开发JAVA的几个问题
- 关于JAVA的Scanner(System.in)循环输入的一些问题与解决
- 解决JAVA的键盘输入问题
- 几个关于Java内存泄露方面的问题