Java编程:获取键盘输入的三种方法
来源:互联网 发布:java ide v2ex 编辑:程序博客网 时间:2024/06/06 07:42
System.in.read
方法一:使用System.in.read()获取键盘输入,此方法只能一个字符一个字符的获取,获取到的变量类型为int,需要通过类型转换获取到自己期望的类型。该方法也会接收回车符(13)、换行符(10)。
package com.ips.io.keyboard;import java.io.IOException;public class Demo1 { public static void main(String[] args) { try { System.out.print("Enter a char :"); while(true){ char val = (char)System.in.read(); if(val == 13 || val == 10){// byte b = (byte)val;// System.out.println(b); }else{ System.out.println("Your char is :" + val + "\r"); } } } catch (IOException e) { e.printStackTrace(); } }}
BufferedReader
方法二:使用BufferedReader类的readLine方法从控制台接收一个字符串。
package com.ips.io.keyboard;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;public class Demo2 { public static void main(String[] args) { BufferedReader bufferedReader = null; try { bufferedReader = new BufferedReader(new InputStreamReader(System.in)); while(true){ System.out.print("Enter a String :"); String val = bufferedReader.readLine(); System.out.println("Your String is :" + val + "\r"); } } catch (IOException e) { e.printStackTrace(); } finally{ if(bufferedReader != null){ try { bufferedReader.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } bufferedReader = null; } } }}
Scanner
方法三:使用Scanner类实现键盘输入,而且该类提供了对应的类型转换方法,如:nextInt()、nextFloat()
等,非常便于操作。其中nextInt()、nextFloat()
方法不会接收回车符(13)、换行符(10),因此如果在nextInt()
后增加nextLine()
方法,对于nextInt()
输入时的回车符(13)、换行符(10)会被nextLine()
接收。对比代码1、代码2的执行结果,可以体会其中的区别。
代码1:
package com.ips.io.keyboard;import java.util.Scanner;public class Demo3 { public static void main(String[] args) { Scanner sc = null; try { sc = new Scanner(System.in); System.out.println("请输入您的姓名:"); String name = sc.nextLine(); System.out.println("请输入您的年龄:"); int age = sc.nextInt(); System.out.println("请输入您的体重(kg):"); float salary = sc.nextFloat(); System.out.println("您的个人信息如下:"); System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"体重:"+salary); } catch (Exception e) { e.printStackTrace(); } finally { if(sc != null){ sc.close(); sc = null; } } }}
代码2:
package com.ips.io.keyboard;import java.util.Scanner;public class Demo4 { public static void main(String[] args) { Scanner sc = null; try { sc = new Scanner(System.in); System.out.println("请输入您的年龄:"); int age = sc.nextInt(); System.out.println("请输入您的姓名:"); String name = sc.nextLine(); System.out.println("请输入您的体重(kg):"); float salary = sc.nextFloat(); System.out.println("您的个人信息如下:"); System.out.println("姓名:"+name+"\n"+"年龄:"+age+"\n"+"体重:"+salary); } catch (Exception e) { e.printStackTrace(); } finally { if(sc != null){ sc.close(); sc = null; } } }}
最后总结一下next()和nextLine()的区别:
在java中,next()方法是不接收空格的,在接收到有效数据前,所有的空格或者tab键等输入被忽略,若有有效数据,则遇到这些键退出。nextLine()可以接收空格或者tab键,其输入应该以enter键结束。
1 0
- Java编程获取键盘输入值的三种方法
- Java编程:获取键盘输入的三种方法
- Java获取键盘输入的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Java中获取键盘输入值的三种方法
- Android 获取设备网卡信息
- emmc/sd host层解析
- 百度地图开发学习_Day1
- apache配置中ProxyPassReverse指令的含义
- struts2上传下载
- Java编程:获取键盘输入的三种方法
- 创建、结构、行为型设计模式类型归纳
- 小例子一步一步解释“函数调用过程中栈的变化过程”
- JAVA中BigDecimal的字符化输出
- 论代码级性能优化变迁之路(一)
- POJ2251:Dungeon Master(BFS)3D搜索
- oracle学习前准备---路线图
- ANSYS中接触类型 bonded, no separation ,frictionless, rough,frictional
- log4j.properties配置详解与实例