论坛首页 Java企业应用论坛

输入流中的回车和换行

浏览 3413 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2010-05-19  

 byte buf[] = new byte[50];
            System.out.print("input:"); //输入小于100整数
            int count = System.in.read(buf);
            String strBuf = new String(buf, 0, count);
            //String strBuf = new String("100");
            System.out.println(strBuf);
            int n = Integer.parseInt(strBuf);
            System.out.println("n:" + n);

 

String strBuf = new String(buf, 0, count-2);//可以
tring strBuf = new String(buf, 0, count);//不可以,因为 会把输入流中的\r\n (即回车和换行算进来)

细心看这个错误会发现 100后面有个换行 ,问题就出在 这儿。
For input string: "100

"

   发表时间:2010-05-20  
windows是CR LF 是2个字节

如果这段代码在unix linux下换行是LF 一个字节

如果是MAC,是CR,一个字节

(在ACSII码编码下,不考虑UCS)
1 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics