JAVA取得使用者输入的字符串例子
2016-06-16 14:42
501 查看
当在文字模式下要输入数据至程序中时,您可以使用标准输入串流对象System.in,然而我们很少直接使用它,因为System.in对象所提供的 read()方法,是从输入串流取得一个位元组的数据,并传回该位元组的整数值。 在文字模式下的输入是以字节的方式传送给程序,所以直接使用read()方法取得的是字节的ASCII编码整数,通常要取得的使用者输入会是一个字符串,或是一组数字,所以 System.in对象的read()方法一次只读入一个位元组数据的方式并不适用。 在 J2SE 5.0 中,您可以使用java.util.Scanner取得使用者的输入。 java.util指的是包(package)层级,java.util.Scanner表示Scanner这个类是位于java/util这样的阶层之下,现阶段您可以将这个阶层想像为类似文件管理的目录(数据夹)阶层。 直接先来看如何取得使用者的输入字符串: UserInput.java import java.util.Scanner; public class UserInput { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Please input your name: "); System.out.printf("Hello! %s!", scanner.next()); } } 执行结果:
"new"表示新增一个 Scanner对象,在新增一个 Scanner对象时需要一个System.in对象,因为实际上还是System.in在取得使用者的输入,您可以将Scanner看作是 System.in对象的支持者,System.in取得使用者输入之后,交给Scanner作一些处理(实际上,这是 Decorator 模式 的一个应用)。 简单的说,您告诉执行环境新增一个Scanner对象,然后使用它的next()方法来取得使用者的输入字符串,如果要取得数字呢?您可以使用 Scanner对象的nextInt()方法,例如: UserInput.java import java.util.Scanner; public class UserInput { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("Please input a number: "); System.out.printf("Oh! I get %d!! mysite:http://www.infocool.net", scanner.nextInt()); } } nextInt()会将试着取得的字符串转换为int整数,看看执行结果:
要注意的是,Scanner取得输入的依据是空白字节,举凡按下空白键、tab键或是enter键,Scanner就会传回下一个输入,如果您想要取得包括空白字节的输入,比较简单的方法是 使用 BufferedReader 类取得输入。 |
相关文章推荐
- JAVA多线程实现的三种方式及内部原理
- java注解
- 使用JDB-debug调试
- Java集合---ArrayList的实现原理
- 深入理解Java:类加载机制及反射
- spring mvc后台如何处理ajax的请求,并返回json
- SpringMVC整合Tiles框架
- Java操作Excel编程接口
- Retrofit+RxJava在MVP模式中优雅地处理异常
- Java集合---HashMap源码剖析
- javapns 推送ios消息
- 最常用的 Eclipse 快捷键总结
- spring注解设置名称注入还是类型注入
- java基础第23天
- Eclipse下的Android JNI 开发
- java使用ODBC连接Access(mdb)文件错误解决方法
- Java 多线程
- eclipse下开发mapreduce需要导入的jar包
- java.concurrent 包类的总结
- [转载]RCP开发中实用的Eclipse系统类