我们在Java中如果用到处理要分隔字符串,不免会用到String的split(String regex)函数,这时候我们要注意的。

如果想以回车来分隔字符串,很多同学都会这样做。下面是例子:

String[] res = str.split("\n");

但是这样可能会有一个潜在的问题,如果我们的str字符串是从文本文件中得到的,那么就会出现一个隐患。

假如我们的文件为test.txt,里面的内容为:

This(回车)

is testing(无回车)

这时候问题就来了。。。

1、如果这个文件是在Linux或者mac下建立编写的,那么用str.split("\n")会出现正确的结果,如下图:

2、如果这个文件是在window下编写的,那么就该注意了,如果你还是用str.split("\n")就会出现错误的结果,如下图:

有人可能说没什么区别啊,仔细看好了,第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。

java字符串 n换行符_java切割字符串中的回车应注意是\n\r不是\n相关推荐

  1. java通用文件换行符_java通用文件换行符

    java通用文件换行符 [2021-02-07 00:14:46]  简介: java中的换行符是[\n]和[\r].二者的区别是:[\r]表示回车,[\n]表示新行,但两者都可以实现换行.具体实现方 ...

  2. java获得系统换行符_java获取系统换行符

    检验检疫信息系统 Java 1 范围 本标准规定了检验检疫信息系统采用Java语言编码需遵循的基本内容.基本内容包括文件.文件组 织.排版.注释.声明.命名规范.本标准...... <使用 Ja ...

  3. java seek指针 换行符_Java网络编程探究|乐字节

    大家好,我是乐字节小乐,上次给大家讲述了Java中的IO流之输出流|乐字节,本文将会给大家讲述网络编程. 主要内容如下: 网络 网络分层 IP位置 端口port 网络编程 一. 网络 1.概念 网络即 ...

  4. java写入excel换行符_读取excel中字符包含回车换行时,当写入文件后,换行符号改变...

    行内超网系统在自动化测试工具时碰到一个有意思的问题,在windows系统上运行自动化测试工具的智能发起端去模拟人行发送xml报文,智能发起端读取报文时,如果xml报文中含有换行操作,超网系统处理发起端 ...

  5. java replace换行符_Java 替换字符串中的回车换行符的方法

    使用正则表达式进行替换: 代码片段: string documenttxt = entityutils.tostring(entity,"gbk");//获取数据 document ...

  6. 除非换行符在格式字符串中,否则为什么在调用后printf不会刷新?

    除非换行符在格式字符串中,否则为什么在调用后printf不会刷新? 这是POSIX行为吗? 每次如何立即使printf刷新? #1楼 stdout已缓冲,因此仅在换行符输出后输出. 要立即获得输出,请 ...

  7. python字符串拼接换行符_【编测编学】零基础学python_03_字符串(拼接+换行+制表符)...

    字符串拼接 在编码的过程很多时候都会用到字符串的拼接,例如,你可能想将姓和名存储在不同的变量中,等要显示姓名时再将它们合而为一: first_name = "li" last_na ...

  8. java 流换行符_java流中的换行符在javascript中的表示

    前段时间做项目,用struts+ajax技术,结果出现在js中获取的responseText的值与action传过来的值不相等的现象. 在action中用 PrintWriter out = http ...

  9. Java中跨平台换行符%n

    众所周知在不同平台中表示换行符的方式是不同的 比如Windows,Linux,Mac中: (1)在DOS和Windows中,每行结尾是 "\r\n": (2)Linux系统里,每行 ...

最新文章

  1. C++中插件使用举例
  2. 用指针式万用表欧姆档检测发光二极管
  3. =在php中,PHPExcel在PHP7中,save(‘php://output’)出现ERR_INVALID_RESPONSE错误的解决方法...
  4. c++的文件输入/输出
  5. LeetCode 551. 学生出勤记录 I
  6. java timezone_Java TimeZone getAvailableIDs()方法与示例
  7. 参考文献的类型及标识
  8. MySql 一条更新语句是如何执行的? MySql杂谈、MySql WAL 技术
  9. python 添加图片_python3 tkinter添加图片和文本
  10. VIA1708s声卡前置麦克设置问题
  11. Treeview动态添加用户控件 取值和传值(第二种样式)
  12. 综述|重邮高新波等最新《少样本目标检测算法》
  13. 黑群晖一键生成视频缩略图
  14. 什么叫明文,什么叫密文,为什么不允许在数据库里明文保存密码?
  15. 如何用keil5打开keil4工程
  16. linux ar3012蓝牙驱动,佳能 Bluetooth AR3012 驱动程序下载-更新佳能软件(蓝牙)
  17. 博弈论:子博弈精炼均衡(子博弈都是纳什均衡,比纳什均衡更强的概念)
  18. ByteBuffer的原理和使用详解
  19. Jquery利用ajax调用asp.net webservice的各种数据类型(总结篇)
  20. python上传大文件s3_使用Python boto3上传Windows EC2实例中的文件至S3存储桶中

热门文章

  1. 求难、求拙、求慢、求少
  2. python底层代码里面的参数_梯度下降算法讲解及python底层实现
  3. java openldap_java操作OpenLdap示例
  4. sublime_text配置php调试环境,SublimeText2配置PHP调试环境(在windows环境下)
  5. macbookair有没有touchbar_买 MacBook Pro 到底要不要选 Touch Bar 版?看清需求后再下手...
  6. java打包要依赖maven库吗_maven-将依赖的 jar包一起打包到项目 jar 包中
  7. excel 按数据拆分 xlam_Excel按类别名称自定义排序:玩转Excel数据
  8. matlab 冒号操作符
  9. Python3 基础语法(笔记1)
  10. 【Verilog HDL 训练】第 07 天(串并转换)