java替换换⾏符_java中去除字符串(String)中的换⾏字符
(rnt)
例1:
public classTest {public static voidmain(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 classTest2 {public static voidmain(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 classTest3 {public static voidmain(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 classTest4 {public static voidmain(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 classTest5 {public static voidmain(String[] args) {
String s= "'sds gdasda" + "\r\n" + "edaeafd'";
System.out.println("转换前:"+s);
replaceall()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平台,因此它被认为只是⼀个新的⾏。
若有侵权,请联系本⼈删除
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论