通过java中System类下的静态类对象in来实现键盘录入的功能。以键盘录入为基础实现将键盘录入的字符转变为大写。
题目:
获取用户键盘录入的数据,并将数据变成大写显示在控制台上,如果用户输入的是over,结束键盘录入。
思路:
- 因为键盘录入只读取一个字节,要判断是否是over,需要将读取到的字节拼接成字符串
- 需要一个容器StringBuilder用于拼接字符串
- 在用户回车之前录入的数据拼接成字符串判断即可。
代码:
import java.io.IOException;
import java.io.InputStream;
public class Demo2 {
public static void main(String[] args) throws Exception {
readKey2();
}
private static void readKey2() throws Exception {
//1.创建一个容器
StringBuilder sb=new StringBuilder();
//2.获取键盘读取流
InputStream is=System.in;
//3.定义一个变量,记录读取到的字节,并循环获取
int ch=0;
//结束标记也是-1
while((ch=is.read())!=-1) {
//在存储之前需要判断是否是换行符,如果是换行符,不进行存储
if(ch=='\r'){
continue;
}
if(ch=='\n'){
//换行符已经输入完毕,返回大写
//如果为over 代表技术
String str=sb.toString();//转为字符串
if("over".equals(str)){
break; //结束循环
}
System.out.println(str.toUpperCase());
sb.delete(0, sb.length());//每次在拼接完成返回大写后要清空之前的缓存,以备下一次拼接
}else{
//因为读取的不是换行符,所以需要拼接字符串
sb.append((char)ch);
}
}
}
}