首页 > 基础资料 博客日记
Java【代码 19】含有换行符\r\n的字符串匹配(源码分享)处理Word文档里的Excel表格数据
2024-10-21 19:00:07基础资料围观312次
Java资料网推荐Java【代码 19】含有换行符\r\n的字符串匹配(源码分享)处理Word文档里的Excel表格数据这篇文章给大家,欢迎收藏Java资料网享受知识的乐趣
1.问题说明
Java 后台读取包含 Excel 表格的 Word 文档,此时正文数据字符串包含 \r\n
也就是换行符,想要通过 yaml 配置文件匹配 Excel 表格的表头,但是无论如何都是匹配不上:
String excelHeader = configuration.getExcelHeader();
boolean contains = contentStr.contains(excelHeader);
配置如下:
# 1.匹配结果是 false
excelHeader: "姓名\r\n身份证号\r\n手机号\r\n户籍地\r\n"
# 2.匹配结果也是 false
excelHeader: "姓名\\r\\n身份证号\\r\\n手机号\\r\\n户籍地\\r\\n"
但是在 debug 模式下,将 excelHeader
设置成 姓名\r\n身份证号\r\n手机号\r\n户籍地\r\n
时可以完成匹配:
sonString.contains("姓名\r\n身份证号\r\n手机号\r\n户籍地\r\n");
// 此时
result = true
2.问题分析
使用 debug 模式查看了读取的正文数据,查看字符串值时发现 \r\n
转换为 ASCII 值 13
和 14
:
但是读取的配置字符串被转义为 \\r\\n
且转换为 ASCII 时更加离谱:
3.问题解决
// 【无法匹配】配置
private String excelHeader;
// 【无法匹配】使用
configuration.getExcelHeader();
// 【可以匹配】配置
private Object excelHeader;
// 【可以匹配】使用
configuration.getExcelHeader().toString();
在 Java 中,toString() 方法通常不会将 \r 转义为 \r。这是因为 toString() 方法的目的是返回对象的字符串表示形式,而不是对特殊字符进行转义。如果直接使用 String 类型,配置里的 \
和 r
都会被认为是字符串,且由于\
的特殊性,会进行转义 \\
导致 \r
变成了 \\r
前边是单个字符,后边是个字符串。
文章来源:https://blog.csdn.net/weixin_39168541/article/details/143022043
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:jacktools123@163.com进行投诉反馈,一经查实,立即删除!
标签:
相关文章
最新发布
- hot100之普通数组
- 记一次诡异的线上异常赋值排查:代码没错,结果不对
- hot100之子串
- 剑指offer-1、⼆维数组中的查找
- 从尾到头打印链表
- 秒杀/高并发解决方案+落地实现 (技术栈: SpringBoot+Mysql + Redis +RabbitMQ +MyBatis-Plus +Maven + Linux + Jmeter ) -03
- @ModelAttribute、@RequestBody、@RequestParam、@PathVariable 注解对比
- Java 样板代码库 Lombok 使用详解
- wso2~自定义event-publisher
- 数组数量数据数量大 1000万黑名单用户 一百亿基础用户 查询检索思路