/**
* 【需求】
* 获取用户键盘录入的数据,并将数据变成大写显示在控制台上,如果用户输入的是over,
* 结束键盘录入。
*
* 【思路】
* 1.因为键盘录入只读取一个字符,要判断是否是over,需要将读取到的字节拼成字符串。
* 2.那就需要一个容器:StringBuilder。
* 3.在用户回车之前将录入的数据变成字符串判断是否是over即可,若是,则结束录入,若
* 不是,则变成大写。
*/
package demo;
import java.io.IOException;
import java.io.InputStream;
public class ReadKey2 {
public static void main(String[] args) throws IOException {
readKey2();
}
public static void readKey2() throws IOException {
//1.定义容器。
StringBuilder sb = new StringBuilder();
//2.获取键盘读取流。
InputStream in = System.in;
//3.定义变量记录读取到的字节,并循环获取。
int ch = 0;
while((ch = in.read())!=-1){
//在存储之前需要判断是否为换行标记,因为不存储'\r'
if(ch == '\r')
continue;
if(ch == '\n'){
String temp = sb.toString();//将当前容器中所有内容作为字符串,返回给temp,用于判断是否为“over”
if("over".equals(temp))//自定义结束标记:over
break;//关闭动作,也可以直接鼠标左键单击Console框上的小红点
System.out.println(temp.toUpperCase());//如果不是over,说明一行已经输入完毕,那么直接转成大写输出
sb.delete(0, sb.length());
//【注意】这里如果不清空容器,那么会出现“第一次输入a,输出A,第二次输入b,输出AB”的情况,另:集合清空是clear方法,StringBuilder清空是delete方法
}
else
//将读取到的字节存储到StringBuilder中。
sb.append((char)ch);
}
}
}
22-IO流-24-IO流(读取键盘录入)
最新推荐文章于 2023-03-03 13:56:29 发布