public class demo
{
public void static void main(String[] args)
{
int c;
BufferedInputStream bi = new BufferedInputStream(System.in);
byte[] b = new byte[5];
while ((c = bi.read()) != -1)
{
System.out.print((char)c);
}
}
}
为什么我在输出c时,必须要把其强制转换为char型才能得出正确的结果呢,比如我从 键盘键入5,输出的才能为5,如果不转换,即System.out.print(c); 那么会得到531310。请问各位高手这是为什么啊?
{
public void static void main(String[] args)
{
int c;
BufferedInputStream bi = new BufferedInputStream(System.in);
byte[] b = new byte[5];
while ((c = bi.read()) != -1)
{
System.out.print((char)c);
}
}
}
为什么我在输出c时,必须要把其强制转换为char型才能得出正确的结果呢,比如我从 键盘键入5,输出的才能为5,如果不转换,即System.out.print(c); 那么会得到531310。请问各位高手这是为什么啊?
public class demo
{
public static void main(String[] args)
{
int c;
try{BufferedInputStream bi = new BufferedInputStream(System.in);
byte[] b = new byte[5];
while ((c = bi.read()) != -1)
{
Character d=new Character((char)c); //1
Integer e=Integer.valueOf(d.toString());//2
int f=e.intValue(); //3
System.out.print(f); //4
}
}
catch(IOException e){
}
}
} 123 注释掉的话 把4改成System.out.print((char)c); 运行可以输入5输出5不过5 是字符型de
的
1234句都不改动的话 输出的时候已经转变成了int型
笨方法 lz满意不
拿分来 呵呵
public class demo
{
public static void main(String[] args) throws Exception
{
int c;
BufferedInputStream bi = new BufferedInputStream(System.in);
byte[] b = new byte[5];
while ((c = bi.read()) != -1)
{
System.out.println(c);
}
}
}
在命令行输入:a
输出结果:97
13
10
可以看出:97是a的asii码值
13是回车\r,10是换行\n
在windows平台按下回车时会产生:\r\n
在unix平台按下回车时会产生:\n
是不可显示的,当你转换字符后,你输入的字符 如a 可以正常显示,回车换行就不显示了
本例中,读到的C为int,输出前当然要强制转换为char