Java【代码 19】含有换行符\r\n的字符串匹配(源码分享)处理Word文档里的Excel表格数据

server/2024/10/17 19:11:39/

含有换行符的字符串匹配

  • 1.问题说明
  • 2.问题分析
  • 3.问题解决

1.问题说明

Java 后台读取包含 Excel 表格的 Word 文档,此时正文数据字符串包含 \r\n也就是换行符,想要通过 yaml 配置文件匹配 Excel 表格的表头,但是无论如何都是匹配不上:

java">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时可以完成匹配:

java">sonString.contains("姓名\r\n身份证号\r\n手机号\r\n户籍地\r\n");
// 此时
result = true

2.问题分析

使用 debug 模式查看了读取的正文数据,查看字符串值时发现 \r\n转换为 ASCII 值 1314

但是读取的配置字符串被转义为 \\r\\n且转换为 ASCII 时更加离谱:

3.问题解决

java">// 【无法匹配】配置
private String excelHeader;
// 【无法匹配】使用
configuration.getExcelHeader();// 【可以匹配】配置
private Object excelHeader;
// 【可以匹配】使用
configuration.getExcelHeader().toString();

在 Java 中,toString() 方法通常不会将 \r 转义为 \r。这是因为 toString() 方法的目的是返回对象的字符串表示形式,而不是对特殊字符进行转义。如果直接使用 String 类型,配置里的 \r都会被认为是字符串,且由于\的特殊性,会进行转义 \\导致 \r变成了 \\r前边是单个字符,后边是个字符串。


http://www.ppmy.cn/server/132558.html

相关文章

CSS @规则(At-rules)系列详解___@font-face规则使用方法

CSS 规则(At-rules)系列详解 ___font-face规则使用方法 本文目录: 零、时光宝盒 一、CSSfont-face规则定义和用法 二、font-face语法 三、font-face使用方法例子 3.1、指定一种字体 3.2、font-face 里添加文本的描述符 3.3、设置多个 font-face 规则。 3.4…

第十五届蓝桥杯C/C++学B组(解)

1.握手问题 解题思路一 数学方法 50个人互相握手 (491)*49/2 ,减去7个人没有互相握手(61)*6/2 答案:1024 解题思路二 思路: 模拟 将50个人从1到50标号,对于每两个人之间只握一…

产品更新|DuoPlus云手机APP预装、批量管理功能新上线!

前言:在这个日新月异的时代,每一个微小的变化都可能引领行业新潮流,DuoPlus云手机基于不断创新的原则,把用户的体验放在第一位,不断对产品进行调整优化,力求提升用户的工作效率。 我们通过收集用户反馈&am…

阳台插入式光伏系统如何选防逆流电流互感器-安科瑞黄安南

近年,在海外,尤其是欧洲区域,阳台光伏异军突起,受到极大关注。今年2月,德国VDE(德国电气工程师协会,直接参与德国国家标准制定)起草文件,拟在确保安全情况下,…

【论文阅读笔记】The Chubby lock service for loosely-coupled distributed systems

文章目录 1 简介2 设计目标3 Chubby设计3.1 系统结构3.2 文件、目录、句柄3.3 锁和序列器3.4 事件通知机制和缓存3.5 Session 和 KeepAlive3.6 故障转移3.7 数据库实现3.8 备份和镜像 4 扩展机制4.1 代理4.2 分区 1 简介 Chubby是一个面向松耦合分布式系统的锁服务&#xff0c…

JavaScript下载文件(简单模式、跨域问题、文件压缩)

文章目录 简介简单文件下载通过模拟form表单提交通过XMLHttpRequest方式 跨域(oss)下载并压缩文件完整示例文件压缩跨域设置 简介 相信各位开发朋友都遇到过下载的文件的需求,有的非常简单,基本链接的形式就可以。 有的就比较复杂,涉及跨域…

【保姆级教程】DolphinScheduler本地部署与远程访问详细步骤解析

文章目录 前言1. 安装部署DolphinScheduler1.1 启动服务 2. 登录DolphinScheduler界面3. 安装内网穿透工具4. 配置Dolphin Scheduler公网地址5. 固定DolphinScheduler公网地址 前言 本篇教程和大家分享一下DolphinScheduler的安装部署及如何实现公网远程访问,结合内…

解决leetcode第3309题连接二进制表示可形成的最大数值

难度:中等 问题描述: 给你一个长度为 3 的整数数组 nums。 现以某种顺序连接数组nums 中所有元素的二进制表示 ,请你返回可以由这种方法形成的 最大数值。 注意:任何数字的二进制表示不含前导零。 示例 1: 输入: nums [1,2…