将一个路径进行标准化的解析, 防止路径中连续出现多个‘/’,以及防止路径中出现'\', 防止路径结尾出现 '/'

Posted 夜晚的猫头鹰

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将一个路径进行标准化的解析, 防止路径中连续出现多个‘/’,以及防止路径中出现'\', 防止路径结尾出现 '/'相关的知识,希望对你有一定的参考价值。

由于不同系统,路径的信息表示不同,但是最后的处理却是使用同一格式的,

比如:输入的路径为:D:\\kassdev\\app-kaace\\classes\\com\\kass\\commons\\utils,

需要输出的路径信息为:D:/kassdev/app-kaace/classes/com/kass/commons/utils

以下的代码,对这种情况进行了处理

public static String parsePath(final String path){
  if(path==null || path.length()==0)
    return "";
  if(path.indexOf("\\")>=0){
    String path2 = path.replaceAll("\\\\", "/");
    while(path2.indexOf("//")>=0){
      path2 = path2.replaceAll("//", "/");
    }
    if(path2.endsWith("/") && !path2.equals("/")){
      path2 = path2.substring(0, path2.length()-1);
    }
    return path2;
  }else{
    if(path.indexOf("//")>=0){
      String path2 = path.replaceAll("//", "/");
      while(path2.indexOf("//")>=0){
        path2 = path2.replaceAll("//", "/");
      }
      if(path2.endsWith("/") && !path2.equals("/")){
        path2 = path2.substring(0, path2.length()-1);
      }
      return path2;
    }else{
      if(path.endsWith("/") && !path.equals("/")){
        String path2 = path.substring(0, path.length()-1);
        return path2;
      }else{
        return path;
      }
    }
  }
}

以上是关于将一个路径进行标准化的解析, 防止路径中连续出现多个‘/’,以及防止路径中出现'\', 防止路径结尾出现 '/'的主要内容,如果未能解决你的问题,请参考以下文章

CSS 动作路径标准 Motion Path 简介

多假设追踪方法mht是啥算法

MPLAB IDE中,怎么把引用头文件的路径改成自定义的

写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名?pathinfo文件路径& parse_url解析url & basename路径中文件名

防止2个连续数字正则表达式

Multipath多路径冗余全解析