String的Split() 常见问题
序言
split方法非常常用,而它的坑点很多,相信很多人都踩了坑却找不出原因。下面我对我遇到的做如下总结。
前言
一、Windows系统的回车与Linux的回车不同
windows系统的的回车是由\r\n组成,也就是我们Java当中的一个空格和一个回车。 Linux系统的回车是由\n组成,也就是Java中的一个回车。
正文
一、两个分隔符之间的空格问题
str.split(“o”)中,o作为分隔符,两个o之间的字符串,如果全是空格,那么这些空格也会被保留,而且是有多少个就保留多少个。 如果str是"aooa"的话,那么两个o之间就是"",相当于没有字符。也就是最后的输出就是"aa"。
二、分割得到的字符串数组遍历拼接的坑
相信很多人有这样的需求:把字符串根据某个字符进行分割,得到字符串数组后,创建一个StringBuildder,遍历数组,用StringBuildder append数组中的所有元素,然后直接输出。在IDEA工具下,如果最后得到的字符串太长的话,而且都在一行,每一个元素之间没有\n即回车的话,你会发现在控制台上,该字符串的前面部分字符串消失了,只剩下最后一部分字符串,这就是IDEA工具本身的问题,而且输出的字符串并没有提示前面部分的字符串因为太长了而没有显示。
三、分割得到的字符串数组遍历输出的坑
同样的,当你遍历每一个元素,输出的时候是使用“System.out.print()”的话,那么在IDEA的工具下,如果字符串太长,前面部分的字符串也会消失。
|