一个java数组小程序的问题~~~~???急

publicclassReadLine{publicstaticvoidmain(String[]args){bytebuf[]=newbyte[1024];String... public class ReadLine
{
public static void main(String [] args)
{
byte buf[]=new byte[1024];
String strInfo=null;
int pos=0;
int ch=0;
System.out.println("please enter info, input bye for exit:");
while(true)
{
try
{
ch=System.in.read();
}
catch(Exception e)
{
System.out.println(e.getMessage());
}
switch(ch)
{
case '\r':
break;
case '\n':
strInfo= new String(buf,0,pos);
if(strInfo == "bye")
return ;
else
System.out.println(strInfo);
pos=0;
break;
default:
buf[pos++]=(byte)ch;
}
}
}
}
上面这个程序,能帮我说一下他的执行过程吗》》~??具体说两次循环就行,还有就是这个:strInfo= new String(buf,0,pos);到底是怎么执行的,从buf的第0个元素开始到buf的pos个元素的话那第一次循环时事0到0??那第二次是什么????不明白啊~~~~~~~~~~~~~~~
展开
 我来答
百度网友9c9cbbb
2009-06-26 · TA获得超过301个赞
知道小有建树答主
回答量:304
采纳率:0%
帮助的人:325万
展开全部
读入键盘输入的每个字节,
注意,如果不是换行字符,就累加到buf当中;
如果是换行,那就把buf当中的东西创建为String,显示出来,并复位,重新开始读键盘了。

关于从0到0,仅当你上来就敲一个回车,这时候创建一个空串而已。
ly2008boy
2009-06-26 · 超过15用户采纳过TA的回答
知道答主
回答量:94
采纳率:0%
帮助的人:50.1万
展开全部
关键是看懂switch语句。
在没敲回车和换行前都执行:buf[pos++]=(byte)ch;
把每一个从键盘读到每个byte缓存进buf这个字节数组。
注意这里pos++,对pos进行累加!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式