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

您所在的位置:网站首页 怎样删掉换行符号 java中去除字符串(String)中的换行字符(\r \n \t)

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

2024-06-16 05:58| 来源: 网络整理| 查看: 265

例1:

public class Test { public static void main(String[] args) { String s = "'sds gdasda" + "\n" + "edaeafd'"; System.out.println("转换前:"+s); s = s.replaceAll("\r|\n", ""); System.out.println("转换后:"+s); } }

输出结果: 转换前:'sds gdasda edaeafd' 转换后:'sds gdasdaedaeafd'

 

例2:

public class Test2 { public static void main(String[] args) { System.out.println("\\r 输出:"+"abc"+"\r"+"abc"); System.out.println("\\n输出:"+"abc"+"\n"+"abc"); } }

输出结果: \r 输出:abc abc \n输出:abc abc

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

 

例3:

public class Test3 { public static void main(String[] args) { String s = "'sds gdasda" + "\n" + "edaeafd'"; System.out.println("转换前:"+s); s = s.replaceAll("\r", ""); System.out.println("转换后:"+s); } }

输出结果: 转换前:'sds gdasda edaeafd' 转换后:'sds gdasda edaeafd'

经过s.replaceAll("\r", ""),\n并没有被替换成空,说明\n和\r是不相等的

 

例4:

public class Test4 { public static void main(String[] args) { String s = "'sds gdasda" + "\n\r" + "edaeafd'"; System.out.println("转换前:"+s); s = s.replaceAll("\r|\n", ""); System.out.println("转换后:"+s); } }

输出结果: 转换前:'sds gdasda

edaeafd' 转换后:'sds gdasdaedaeafd'

可以看出\r表示回车,\n表示另起一行(\r 叫回车 Carriage Return  ;\n 叫新行 New Line)

 

我们可以再做一个实验:

例5:

public class Test5 { public static void main(String[] args) { String s = "'sds gdasda" + "\r\n" + "edaeafd'"; System.out.println("转换前:"+s); s = s.replaceAll("\r|\n", ""); System.out.println("转换后:"+s); } }

输出结果: 转换前:'sds gdasda edaeafd' 转换后:'sds gdasdaedaeafd'

 

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

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

不同平台的回车+换行 windows: \r\n mac: \r unix/linux: \n

在"abc"+"\n\rdef"中,\n\r不匹配任何平台,因此它被认为是\n和\r(匹配unix/linux和mac),即进行了"换行+回车"操作,所以有两个新行。 在"abc"+"\r\ndef"中,\r\n匹配Windows平台,因此它被认为只是一个新的行。

本文转载自https://blog.csdn.net/y13530828499/article/details/6718206 

若有侵权,请联系本人删除



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3