java split换行符 | 您所在的位置:网站首页 › java怎么回车 › java split换行符 |
--------------------- 我们在Java中如果用到处理要分隔字符串,不免会用到String的split(String regex)函数,这时候我们要注意的。 如果想以回车来分隔字符串,很多同学都会这样做。下面是例子: String[] res = str.split("\n"); 但是这样可能会有一个潜在的问题,如果我们的str字符串是从文本文件中得到的,那么就会出现一个隐患。 假如我们的文件为 test.txt ,里面的内容为: This(回车) is testing(无回车) 这时候问题就来了。。。 1、如果这个文件是在Linux或者mac下建立编写的,那么用str.split("\n")会出现正确的结果,如下: This is testing 2、如果这个文件是在window下编写的,那么就该注意了,如果你还是用str.split("\n")就会出现错误的结果,如下: This is testing 有人可能说没什么区别啊,仔细看好了,第2个的结果,this和is testing中间有个空行,而第一个没有。为什么会出现这个结果。 这还要从回车符来讲,简单来说,window下回车是由\r\n(即0x0D和0x0A)组成的,注意不是\n\r,而linux下回车是由\n(即0x0A)小伙伴们别搞错了,这个我自己证实过, 这个window下编辑的文件,我用16进制打开的,大家看到第3,4列中的是0D、0A,也就是回车。 而在Linux下是这个样子的: 这个是linux下的文件用16进制打开的情况,红圈中只有个0A,也就是回车。 到这里我们就明白了,刚才在window下用split("\n")出现的结果,则是this\r和is testing两个部分。 而在linux下用split("\n")出现的结果,则是this和is testing两个部分,this后面则就没有\r。 这个隐患的细节,还要多多注意。 |
CopyRight 2018-2019 实验室设备网 版权所有 |