在Windows和Linux中使用换行符分割字符串的区别

分类:计算机 | Java | 字符串 | 综合 1252
更新:2021-12-04 17:42:35
编辑

在项目中使用pdfbox将pdf文件中的一段文字提取出来,因为这段文字是一行一行排列的,所以就按照换行符对这段文字进行分割,分割成一个字符串数组,代码如下:

String[] splitText = analysisText.split("\r\n");

然后程序在windows系统上面运行着没有问题,但是打包发布到linux系统中运行时发现文字分割的结果不对,查了一下,原来是因为在不同的操作系统中,对换行符的定义不一样导致的,比如:

1、unix,linux,新的mac:\n

2、有的mac系统:\r

3、windows系统:\r\n

那么如果改成根据不同的操作系统来使用不同的换行分割符也比较麻烦,可以用一个正则表达式来满足不同的操作系统:\r?\n

修改后的代码如下:

String[] splitText = analysisText.split("\r?\n");