A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 飘落 于 2013-10-20 15:37 编辑
  1. class Demo
  2. {
  3.     public static void main(String[] args)
  4.     {
  5.         System.out.println("abcdef\b\b123");
  6.         System.out.println("abcdef\r123");
  7.     }
  8. }
复制代码
这段代码在Eclipse中输出的结果,和在命令提示符中输出的结果不一样,求解释。

评分

参与人数 1技术分 +1 收起 理由
潘才新 + 1

查看全部评分

5 个回复

倒序浏览
同求,帮顶。
回复 使用道具 举报
是因为cmd和eclipse的识别字符不一样吧,eclipse不能识别\b\b,出现了空格,eclipse中对于\r和\n分别是回车、换行,但在windows中,\r返回行首,所以打印abcdef\r123时,读到\r时就跳到行首,读取123,覆盖掉原来的abc,但def还存在,所以打印出123def。
个人见解

评分

参与人数 1技术分 +1 收起 理由
潘才新 + 1 赞一个!

查看全部评分

回复 使用道具 举报

个人认为可能是编解码的问题(有错勿踩)
回复 使用道具 举报
这是因为Dos下和eclipse下对java的转义字符的解释不一样,像你第一行的退格eclipse直接不能识别时什么,但是dos却可以正常识别并运行,\r也是一样,只不过虽然都能识别但是对这个转义字符的解释又不一样,所以运行的结果也不一样。这种问题估计比较少见,不同的操作系统好像书写规则也不同。感觉不用太在意。

评分

参与人数 1技术分 +1 收起 理由
潘才新 + 1

查看全部评分

回复 使用道具 举报
亲,如问题已解决请将分类的“未解决”改为“已解决”。
以后的问题贴也要及时更改分类哦~
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马