黑马程序员技术交流社区
标题:
关于毕老师键盘录入有一个小问题,帮忙解答一下啊
[打印本页]
作者:
王溢君
时间:
2013-1-30 00:39
标题:
关于毕老师键盘录入有一个小问题,帮忙解答一下啊
代码如下:
import java.io.*;
class SystemOut
{
public static void main(String[] args) throws IOException
{
InputStream in = System.in;
StringBuilder sb = new StringBuilder();
while (true)
{
int num = in.read();
if (num == '\r')
{
continue;
}
if (num == '\n')
{
String s = sb.toString();
if (s.equals("over"))
{
break;
}
System.out.println(s.toUpperCase());
sb.delete(0,sb.length());
}
else
sb.append((char)num);
}
}
}
复制代码
这里,int num类型的可以和'\r'char类型的相等判断吗???卡住了。。。
作者:
梁俊
时间:
2013-1-30 09:12
System.out.println('\r'==13);返回结果为true
在byte、short、char参与运算的时候会自动提升为int
字符'\r' 的asc码表值为13
作者:
杨杨
时间:
2013-1-30 09:28
楼上回答正确啊 我在补充一下 char 类型可以自动转化为int类型,
对与原因请参见简单数据类型之间的转换
在Java中整型、实型、字符型被视为简单数据类型,这些类型由低级到高级分别为(byte,short,char)--int--long--float--double。 简单数据类型之间的转换又可以分为:
低级到高级的自动类型转换
高级到低级的强制类型转换
包装类过渡类型能够转换
低级变量可以直接转换为高级变量,笔者称之为自动类型转换,例如,下面的语句可以在Java中直接通过:
byte b;
int i=b;
long l=b;
float f=b;
double d=b;
如果低级类型为char型,向高级类型(整型)转换时,会转换为对应ASCII码值,例如:
char c='c';
int i=c;
System.out.println("output:" i);
输出:output:99;
对于byte,short,char三种类型而言,他们是平级的,因此不能相互自动转换,可以使用下述的强制类型转换。
short i=99;
char c=(char)i;
System.out.println("output:" c);
输出:output:c;
为得技术分的人民伤不起啊 希望对你有帮助
作者:
walkonby
时间:
2013-1-30 09:33
2楼正解 他会自动提升的 然后比ascii码
作者:
念满
时间:
2013-1-30 22:18
自动类型提升:byte、short、char——> int
若一个操作数为long,结果就是long
若一个操作数为float,结果就是float
若一个操作数为double,结果就是double
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2