| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 579 人关注过本帖
标题:求助 java io 学习中的一点疑惑
只看楼主 加入收藏
jjval
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-4-20
结帖率:0
收藏
已结贴  问题点数:20 回复次数:4 
求助 java io 学习中的一点疑惑
初学者学习中遇到如下部分代码:
int data;
while((data=System.in.read())!="q"){.........

求教data接收到输入为int,为何能直接与q比较

如果直接对data赋值再做比较,如:
int data=49;
while(data!="q"){......
就报错:不可比较的类型: int和String

求指点 谢谢
搜索更多相关主题的帖子: java 
2014-04-20 23:10
z66261123
Rank: 1
等 级:新手上路
帖 子:2
专家分:7
注 册:2014-4-23
收藏
得分:7 
从键盘输入的是string类型
2014-04-24 00:17
xixiqiqi
Rank: 2
等 级:论坛游民
帖 子:22
专家分:71
注 册:2013-10-10
收藏
得分:7 
不是很明白楼主的意思.

如果希望字节流read()的返回值与q比较的话:
int data;
while((data=System.in.read())!='q')   // 这里的'q'是字符,int是可以与char比较的
{...}   

如果希望和字符串"q"比较,那么读入的是一个字符串,就可以比较了:
如,
InputStreamReader reader = new InputStreamReader(System.in) ;
BufferedReader br = new BufferedReader(reader) ;
String data ;
while(!"q".equals(data=br.readLine())) // 这里的"q"是字符串,data也是字符串,用equals()方法比较
{...}
如,
Scanner scan = new Scanner(System.in) ;
String data ;
while(!"q".equals(data=scan.next()))
{...}
2014-04-24 00:54
鸥翔鱼游
Rank: 5Rank: 5
等 级:职业侠客
帖 子:182
专家分:323
注 册:2014-4-19
收藏
得分:7 
且学且珍惜,得认学习真正消化
2014-04-24 14:44
jjval
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2014-4-20
收藏
得分:0 
回复 3 楼 xixiqiqi
十分感谢
基础知识没掌握好闹出的笑话 双引号String 单引号char char能和int比较 知道这3点我的问题就搞清楚了
2014-04-27 16:44
快速回复:求助 java io 学习中的一点疑惑
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014802 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved