当前位置: 首页 > news >正文

java中的路径处理、左右斜杠

文章目录

      • PathNormalizer 工具类

属于基础问题,也整理下。

典型场景:
获取文件路径,拿到的是 d:\data\upload 然后代码中拼接的是/,这样存到库里乱七八糟。

PathNormalizer 工具类

importjava.nio.file.Path;importjava.nio.file.Paths;publicclassPathNormalizer{/** * 统一路径分隔符为正斜杠(推荐用于存储和显示) */publicstaticStringnormalizeToUnix(Stringpath){if(path==null||path.isEmpty()){returnpath;}// 统一替换反斜杠为正斜杠returnpath.replace('\\','/').replaceAll("/+","/");// 合并多个斜杠}/** * 统一为系统默认分隔符(用于文件系统操作) */publicstaticStringnormalizeToSystem(Stringpath){if(path==null||path.isEmpty()){returnpath;}// 先统一为正斜杠,再转为系统分隔符Stringnormalized=normalizeToUnix(path);returnnormalized.replace('/',File.separatorChar);}/** * 安全拼接路径(所有输入先归一化) */publicstaticStringjoin(Stringbase,String...parts){if(base==null){returnnull;}// 归一化基础路径Stringnormalized=normalizeToUnix(base);// 去除末尾斜杠if(normalized.endsWith("/")){normalized=normalized.substring(0,normalized.length()-1);}// 拼接每个部分for(Stringpart:parts){if(part==null||part.isEmpty()){continue;}// 归一化当前部分StringnormalizedPart=normalizeToUnix(part);// 去除开头斜杠if(normalizedPart.startsWith("/")){normalizedPart=normalizedPart.substring(1);}normalized+="/"+normalizedPart;}returnnormalized;}/** * 转换为 Path 对象(自动处理系统分隔符) */publicstaticPathtoPath(Stringpath){if(path==null){returnnull;}returnPaths.get(normalizeToUnix(path));}}
http://www.jsqmd.com/news/1026267/

相关文章:

  • 北京家具维修翻新全屋家具维修推荐良匠千艺连锁口啤榜 - 我叫一
  • Bilibili-Evolved完整快捷键指南:10个提升B站体验的隐藏技巧
  • Mac上Homebrew安装的MySQL启动报错?别急着重装,先试试这个数据目录初始化大法
  • 湖南长沙考研机构选那家好?认准博闻考研,靠谱正规更安心 - 长沙考研集训营
  • 2026亲测正规901环氧乙烯基酯树脂厂 - 资讯快报
  • ArduinoFFT信号处理实战:如何在嵌入式设备上实现专业级频谱分析
  • Libvirt管理LXC容器实战:从基础配置到高级网络与资源控制
  • 2026全网最全免费音视频转换大合集!30+格式无限制在线转,保姆级教程手把手教,这一篇就够了 - 时时资讯
  • USDPAA框架下高性能包处理:PPAC/PPAM架构解析与优化实践
  • 避坑指南:安卓Userland安装Kali Linux时最容易遇到的5个问题及解决方法(更新失败、桌面启动失败、连接不上)
  • 数字电位器非理想特性解析:工艺、电压与温度对精密电路的影响
  • JSON扁平化使用教程:从入门到精通
  • 出生公证书怎么办理?出生公证需要什么材料?
  • 高并发票务系统设计:时空资源切片建模与动态配额引擎
  • Ubuntu 安装一个轻量级的中文输入法Fcitx5
  • VLA多模态架构加持 采摘机器人实现精细化智能采收
  • 苏州晟雅泰电子:关于W25Q128JVSIQ这个芯片物料的参数,规格及应用领域
  • MPC8315E以太网控制器哈希表与IEEE 1588定时器寄存器详解
  • 用I.MX6ULL和MX1502驱动28BYJ-48步进电机:一个嵌入式Linux驱动开发者的避坑实录
  • 2026 濮阳防水公司推荐|全域正规屋面防水 / SBS 防水 / 彩钢瓦防腐翻新 5 家合规企业排行榜 + 避坑攻略 - 资讯快报
  • 宠物饮水机水泵老化报警,除了剪黄线还有别的选择吗?聊聊2线与3线水泵的更换实战
  • python怎么搭建免费代理IP池,免费代理IP适合爬虫工作吗
  • 北京专业收购各类邮品纪念币,上门鉴定当场给钱 - 深鉴新闻
  • 绍兴注册公司怎么选服务商?楚商财税帮创业者少走弯路 - 资讯快报
  • 基于MPC563xM的四缸发动机ECU硬件设计:从架构到EMC的工程实践
  • 从‘vfpcc’报错聊起:ARM Compiler 5 vs 6,你的老旧STM32项目该如何平滑迁移?
  • 2026年二氧化碳激光电源行业深度解析:技术迭代、优质厂家与采购指南 - 资讯快报
  • o4-mini如何3分钟解决代数几何难题
  • 大模型部署终极指南:5分钟掌握SGLang高性能推理框架
  • 北京线下上门回收旧邮票老纪念币,各类工艺品诚信收购 - 深鉴新闻