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

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;
      }
    }
  }
}

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