黑马程序员技术交流社区
标题:
IO流 读取键盘录入 红色问题
[打印本页]
作者:
马超
时间:
2012-5-9 16:35
标题:
IO流 读取键盘录入 红色问题
package 读取键盘录入;
import java.io.*;
public class ReadIn
{
public static void main(String[] args) throws IOException
{
InputStream is = System.in;
StringBuilder sb = new StringBuilder(); //
把键盘录入的都存到了数组当中去了吗?,二者之间有必然的联系吗?
while(true)
{
int ch = is.read();
if(ch == '\r')
continue;
if(ch == '\n')
{
String s = sb.toString(); //转换成字符串形式,为的是能够判断
if("over".equals(s)) //判断
break;
System.out.println(s.toUpperCase());
sb.delete(0,sb.length()); //清空数组中的内容
}
else
sb.append((char)ch);
}
}
}
//BufferedReader bufr = new BufferedReader(new InputStreamReader(System.in));
作者:
周素强
时间:
2012-5-9 18:29
没理解懂你的问题意思?下面给你注释一下 希望可以帮到你。
public static void main(String[] args) throws IOException
{
InputStream is = System.in;//创建键盘输入流对象
StringBuilder sb = new StringBuilder(); //创建字符串缓冲区
while(true)
{
int ch = is.read();//读取键盘流的数据,一次读一个字节
if(ch == '\r')//判断是否是\r如果是返回重新读数据
continue;
if(ch == '\n')//判断是否是\n,如果不是就执行append方法,如果是执行下代码
{
String s = sb.toString(); //将字符串缓冲区的数据转成字符串,为的是能够判断
if("over".equals(s)) //判断标记
break;
System.out.println(s.toUpperCase());
sb.delete(0,sb.length()); //清空数组中的内容
}
else
sb.append((char)ch);//将字节数据转成字符并添加到sb缓冲区中
}
}
复制代码
作者:
常万
时间:
2012-5-9 21:51
StringBuilder是缓冲区不是数组,String不能是数组,你用String 追加的话就得String+=String 这样 用一个String代替上一个值 Stringbuilder就不用 应为每次修改前的值在缓冲区。存在缓冲区是为了方便对缓冲区的数据操作。当然你不定义缓冲区也是可以的。就看你录入的数据是否需要再次使用。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2