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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 杨长川 中级黑马   /  2013-1-19 20:08  /  2259 人查看  /  8 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 杨长川 于 2013-1-22 16:00 编辑

在java中,
\0x 表示八进制字符  貌似C里面表示的是十六进制是不??
还有\r 表示回车,\n表示换行的意思,跟C语言应该是一样的吧。

但是,那为什么
System.out.println("beijing\rshanghai");
输出的是:
beijing
shanghai

而System.out.println("beijing\nshanghai");
输出的也是:
beijing
shnaghai

输出结果怎么都是一样的呀。。。

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1

查看全部评分

8 个回复

倒序浏览
- -!! \0x(\0x3A)开头表示十六进制,\0(\012)开头表示八进制
\r 光标回到行首 beijing
                      shanghai   shanghai覆盖掉了beijing输出shanghai

\n这里 光标换行并回到行首(也就是下一行行首)

评分

参与人数 1技术分 +1 收起 理由
冯海霞 + 1 神马都是浮云

查看全部评分

回复 使用道具 举报
张洪慊 发表于 2013-1-19 20:41
- -!! \0x(\0x3A)开头表示十六进制,\0(\012)开头表示八进制
\r 光标回到行首 beijing
                     ...

请你亲自输入代码 ,试验一下。
回复 使用道具 举报
//那个不好意思,前面没有'\',0x3a,072,- - 我又C了..
class TestData
{

public static void main(String[] args)
{
   System.out.println(0x3A);//58十六进制
   System.out.println(072);//58八进制

   System.out.println("abc"+"\r"+"d");//dbc
   
   System.out.println("abc"+"\n"+"d");//abc
                                                   //d
}
}
//在C中
#include<stdio.h>
int main()
{
printf("%d %d %d\n",58,'\x3A','\072');//58 58 58
return 0;
}
回复 使用道具 举报
张洪慊 发表于 2013-1-21 12:40
//那个不好意思,前面没有'\',0x3a,072,- - 我又C了..
class TestData
{

无论是\r还是\n或者是\r\n
输出的结构都是
abc
d
回复 使用道具 举报
如果不考虑跨平台的话,应该都能实现换行吧~
回复 使用道具 举报
杨浩 发表于 2013-1-21 15:16
无论是\r还是\n或者是\r\n
输出的结构都是
abc

....你可以试下\r.
回复 使用道具 举报
杨浩 发表于 2013-1-21 15:16
无论是\r还是\n或者是\r\n
输出的结构都是
abc

就是啊,这就奇怪了。跟VC的编译器语义上有差别啊,都是输出再换行的意思。
回复 使用道具 举报
牛刚 中级黑马 2013-1-21 18:53:16
9#
在windows里\n和\r都表示回车或换行,所以一样,而在linux只有\rs是回车键
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马