【Java学习笔记】基础知识学习15【文本输入】
来源:互联网 发布:Hec-ras 数据输入方法 编辑:程序博客网 时间:2024/05/22 04:58
既然是写程序,就自然不可避免需要人机交互。也就是需要获取用户的输入,然后出来得到用户的输出。
我看了书中的内容,书中给出的方法可以实现输入文字显示,但是存在问题,比如我输入一段长的中文,再输入一段短的中文,显示出来的内容中,还有那段长的中文内容的后边一部分。这里就是因为书中的参考程序没有进行数组的初始化,清空。我对代码进行了整理。并写下来与大家分享:
static void BookCase() {InputStream is=System.in;try {byte[] bs=new byte[20];while(is.read(bs)!=-1){String string=new String(bs).trim();bs=new byte[20]; //这里就是解决书中问题的地方。书中的代码,没有对数组进行重置,我这里进行了。if(string.isEmpty()){break;}System.out.print("大家好,输入的是:"+string+"\n\r");}} catch (Exception e) {// TODO: handle exceptionSystem.out.println("opps,sorry,出了点错误!");}}上面是使用System.in类、InputStream类来完成的。
还有一种方法,是我研究出的,利用System.in类的部分静态方法完成:
static String GetString() {int a = 0;Collection<Byte> intList = new ArrayList<Byte>();while (true) {try {a = System.in.read();intList.add((byte) a);if (a == 10) {intList.add((byte) 10);byte[] nByte = new byte[intList.size()];Iterator<Byte> newInteger = intList.iterator();a = 0;for (; newInteger.hasNext();) {nByte[a] = (byte) (newInteger.next());a++;}String outStr = new String(nByte, Charset.defaultCharset());return outStr;}} catch (IOException e) {// TODO Auto-generated catch blockreturn "";}}}
另外一种,是使用Scanner类来完成的。
这段代码实现了读取中文字符后,处理应该输入数字,但是输入的不是数字的情况,可以反复处理,直达输入的为数字。如下代码:
static void BBSCreat() {Scanner kScanner = new Scanner(System.in);System.out.print("输入一段文字:");String nInput = kScanner.nextLine();System.out.println("您输入的是:" + nInput);kScanner.reset();while (true) {try {System.out.print("输入一个数字:");int d = kScanner.nextInt();System.out.println("您输入的数字是:" + d);break;} catch (Exception e) {kScanner.nextLine();System.out.println("输入格式不对,请重新输入");}}}
后期会给代码加上注释,现在太晚了,睡觉吧!
- 【Java学习笔记】基础知识学习15【文本输入】
- 【Java学习笔记】基础知识学习16【文本输出】
- 【Java学习笔记】基础知识学习17【文件文本读取写入】
- JAVA学习笔记(基础知识)
- 【Java 学习笔记】基础知识
- JAVA学习,基础知识笔记
- Java学习笔记:Java基础知识
- Android学习笔记(十三)text 文本输入
- Android学习笔记(十三)text 文本输入
- Android学习笔记(十三)text 文本输入
- Android学习笔记(十三)text 文本输入
- java基础知识学习笔记1
- java基础知识学习笔记2
- Java学习笔记:基础知识2
- java学习笔记1-基础知识
- Java学习笔记_001_基础知识
- 黑马学习笔记--JAVA基础知识
- Java基础知识学习笔记总结
- POJ 1789 Truck History
- 180天编写180个网站:他是这么学习编程的,如今已到115天
- Xp/Win7下的VC6的调试、多开工程实例等问题的完全兼容解决方案
- (Problem 33)Digit canceling fractions
- 根据正则表达式生成随机字符串
- 【Java学习笔记】基础知识学习15【文本输入】
- Server 2008 R2 如何支持串口UPS电源管理
- Codeforces Round #193 (Div. 2)
- C语言的变量的内存分配
- 负载均衡简要概念
- Cocos2d-x 2013春季新功能发布和发展规划
- 初学Java Web,搭建开发环境(Eclipse+Tomcat+MySQL)
- 关于目前软件开发的两种模式 C/S B/S
- 股票买卖问题