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

例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);

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平台,因此它被认为只是一个新的行。

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

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值