黑马程序员技术交流社区
标题:
键盘输入,用read()方法,读取到最后是返回-1么?
[打印本页]
作者:
方青木
时间:
2014-3-2 20:16
标题:
键盘输入,用read()方法,读取到最后是返回-1么?
编写程序,从键盘接收一个字符串,对字符串中的字母进行大小写互转(大写字母转成小写,小写字母转成大写)。
import java.io.*;
class Text5
{
public static void main(String[] args) throws IOException
{
InputStream in = System.in;
StringBuffer sbuf = new StringBuffer();
for(int x=in.read(); ; x=in.read())
{
if(x=='\r')
continue;
else if(x=='\n')
break;
else
{
if(x<='z'&&x>='a')
sbuf.append((char)(x-32));
else if(x<='Z'&&x>='A')
sbuf.append((char)(x+32));
else
sbuf.append((char)x);
}
}
System.out.println(sbuf.toString());
}
}
中间for循环为甚写成这样,程序不会停止?
import java.io.*;
class Text5
{
public static void main(String[] args) throws IOException
{
InputStream in = System.in;
StringBuffer sbuf = new StringBuffer();
for(int x=in.read(); x!=-1 ; x=in.read())
{
if(x<='z'&&x>='a')
sbuf.append((char)(x-32));
else if(x<='Z'&&x>='A')
sbuf.append((char)(x+32));
else
sbuf.append((char)x);
}
System.out.println(sbuf.toString());
}
}
当读取完键盘录入的数据,read()方法返回的是什么?
作者:
平凡成就非凡
时间:
2014-3-2 20:53
用啦\r\n 回车符,来判断循环的结束。所以当你敲入回车符时,循环停止。当读取到最后read( ),返回的是(-1 )负一。
作者:
chenfc8578
时间:
2014-3-2 22:30
else if(x=='\n')
break;//break的功能就是终止循环。当读到输入的末尾时程序就会结束了。
read方法读到文件末尾时返回-1
作者:
还是回去火星吧
时间:
2014-3-3 01:03
第一个程序到如果判断为\n 则会执行break就会停掉程序。
第二个程序则不会停掉,除非按Ctrl+C 。
读到最后read返回的是什么,则看你输入的是什么了。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2