您的位置:首页 > 编程语言 > Java开发

在java中除去字符串(String)中的换行字符(\r \n \t)

2011-08-25 13:58 393 查看
我们先来看几个例子:

例1:

publicclassTest{

publicstaticvoidmain(String[]args){

Strings="'sdsgdasda"+"\n"+"edaeafd'";

System.out.println("转换前:"+s);

s=s.replaceAll("\r|\n","");

System.out.println("转换后:"+s);

}

}

输出结果:

转换前:'sdsgdasda

edaeafd'

转换后:'sdsgdasdaedaeafd'

在看一个实例:

例2:

System.out.println("\\r输出:"+"abc"+"\r"+"abc");

System.out.println("\\n输出:"+"abc"+"\n"+"abc");

以上两句在控制台输出的格式是一样的:

\r输出:abc

abc

\r输出:abc

abc

那么是不是说\r与\n是不是相等的呢?

例3:

publicclassTest{

publicstaticvoidmain(String[]args){

Strings="'sdsgdasda"+"\n"+"edaeafd'";

System.out.println("转换前:"+s);

s=s.replaceAll("\r","");

System.out.println("转换后:"+s);

}

}

转换前:'sdsgdasda

edaeafd'

转换后:'sdsgdasda

edaeafd'

输出结果可以看出\r和\n啊hi不相等的。

那么他们有什么区别呢?

例4:

publicclassTest{

publicstaticvoidmain(String[]args){

Strings="'sdsgdasda"+"\n\r"+"edaeafd'";

System.out.println("转换前:"+s);

s=s.replaceAll("\r|\n","");

System.out.println("转换后:"+s);

}

}

输出结果:

转换前:'sdsgdasda

edaeafd'

转换后:'sdsgdasdaedaeafd'

可以看出\r表示回车,\n表示另起一行(\r叫回车CarriageReturn;\n叫新行NewLine)

我们可以在所一个实验:

例5:

publicclassTest{

publicstaticvoidmain(String[]args){

Strings="'sdsgdasda"+"\r\n"+"edaeafd'";

System.out.println("转换前:"+s);

s=s.replaceAll("\r|\n","");

System.out.println("转换后:"+s);

}

}

输出结果:

转换前:'sdsgdasda

edaeafd'

转换后:'sdsgdasdaedaeafd'


例4到例5中我们只是把字符串s的\n\r的位置改变成了\r\n,却发现例4输出结果中多了一行空格。

至于为什么例4和例5输出会有这样的区别也就是\r\n与\n\r的区别,这是网上的一个比较好的答案:

enter+newlinewithdifferentplatforms:

windows:\r\n

mac:\r

unix/linux:\n


in"abc"+”\n\rdef”,\n\rdonotmatchanyplatform,soitisconsideredas\nand\r(whichmatchunix/linuxandmac),sotherearetwonewlines.

in"abc"+”\r\ndef”\r\nmatchesthewindowsplatform,soitisconsideredasonlyonenewline.

scimcrushed,sojustEnglish.


关于\t它相当于按了一下Tab键。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐