本帖最后由 传奇查 于 2015-11-21 13:43 编辑  
 
感觉对你有用就给个鼓励吧~ ~ 
题目都在代码里了~ 
- <font face="宋体" size="3">package cn.fuxi._07io;
 
 - /**
 
 -  * 练习:
 
 -  *                 获取用户键盘录入的数据,并将数据变成大写显示在控制台上,如果用户输入over,结束键盘录入.
 
 -  * 
 
 -  * 思路:
 
 -  *                 1.因为键盘录入只读取一个字节,要判断是否over,需要将读取到的字节拼接成字符串.
 
 -  *                 2.那就需要一个容器:StringBuilder.
 
 -  *                 3.在用户回车之前将输入的数据变成字符串判断即可.
 
 -  */
 
 - import java.io.*;
 
 - import java.util.*;
 
  
- public class _02InputStreamTest {
 
 -         public static void main(String[] args) throws IOException {
 
 -                 //method_1();
 
 -                 method_2();
 
  
-         }
 
 -         //简易修改逻辑顺序
 
 -         public static void method_2() throws IOException{
 
 -                 InputStream is = System.in;//创建系统输入容器
 
 -                 StringBuilder stb = new StringBuilder();//创建字符接收容器
 
 -                 int ch = 0;
 
 -                 while((ch=is.read())!=-1){//将字符读取到容器中
 
 -                         if(ch == '\r'){//回车键的ASCII字符为'\r\n',其中'\r'不被windows识别,不起作用
 
 -                                 continue;
 
 -                         }else if(ch != '\n'){//'\n'起回车作用,这里是说不敲回车时,存入字符进容器中
 
 -                                 stb.append((char)ch);
 
 -                         } else {//用户输入了回车符之后的情况!
 
 -                                 String s = stb.toString().toUpperCase();//方便之后打印的字符串大写转换
 
 -                                 if(s.equals("OVER")){//如果匹配到"over"就退出循环结束程序
 
 -                                         break;
 
 -                                         }
 
 -                                 System.out.println(s);//放在后面的目的是避免吧"OVER"也打印出来
 
 -                                 stb.delete(0, stb.length());//每一行的数据清空一次,避免重复打印
 
 -                         }
 
 -                 }                
 
 -         }
 
 -         //教程中的方式不好理解
 
 -         public static void method_1() throws IOException {
 
 -                 //1.创建容器
 
 -                 StringBuilder stb = new StringBuilder();
 
 -                 //2.获取键盘读取流
 
 -                 InputStream is = System.in;
 
 -                 //3.定义变量记录读取到的字节,并循环获取
 
 -                 int ch=0;
 
 -                 while((ch=is.read())!=-1){
 
 -                         //在存储之前需要判断是否是换行标记,因为换行标记不存储.
 
 -                         if(ch=='\r'){
 
 -                                 continue;
 
 -                         }else if(ch == '\n'){
 
 -                                 String temp = stb.toString();
 
 -                                 if("over".equals(temp)){
 
 -                                         break;
 
 -                                         }
 
 -                                         System.out.println(temp.toUpperCase());
 
 -                                         stb.delete(0, stb.length());
 
 -                         }else{
 
 -                                 //将读取到的字节存储到StringBuilder中
 
 -                                 stb.append((char)ch);
 
 -                         }
 
 -                 }
 
 -         }
 
 - }</font>
 
  复制代码 
感觉对你有用就给个鼓励吧~ ~ 
 |   
        
 
    
    
    
     
 
 |