路径去重

来源:互联网 发布:网络面板插口接法 图解 编辑:程序博客网 时间:2024/05/01 10:12


删除路径中多余的字符

如 String path = "/aaa\\//////bbbb//////ccccc/dddddd\\kj_20141016040327327.xls/";

public class Demo {public static void main(String[] args) {String path3 = "/aaa\\//////bbbb//////ccccc/dddddd\\kj_20141016040327327.xls/";String path = "/";System.out.println(deleteSeparator(path));System.out.println(deleteSeparator(path, "\\\\"));System.out.println(deleteSeparator(path, "/", true, false));System.out.println("本地磁盘A  F:" + deleteSeparator(path3, "\\\\"));System.out.println("本地磁盘B  F:" + deleteSeparator(path3, "\\\\", true, false));System.out.println("网络A  http://" + deleteSeparator(path3, "/"));System.out.println("网络B  http://" + deleteSeparator(path3, "/", false, false));}public static String deleteSeparator(String str) {return deleteSeparator(str, null, true, true);}public static String deleteSeparator(String str, String separa) {return deleteSeparator(str, separa, true, true);}public static String deleteSeparator(String path, String separa, boolean isHaveStart, boolean isHaveEnd) {String tmp = path == null ? "" : path.toString().trim();if (!"".equals(tmp)) {tmp = tmp.replaceAll("\\\\+", "/");tmp = tmp.replaceAll("/+", "/");if (!isHaveStart && tmp.length() >= 1) {if (tmp.substring(0, 1).equals("/")) {tmp = tmp.substring(1, tmp.length());}}if (!isHaveEnd && tmp.length() >= 2) {if (tmp.substring(tmp.length() - 1, tmp.length()).equals("/")) {tmp = tmp.substring(0, tmp.length() - 1);}}if (separa != null && !"".equals(separa.trim())) {tmp = tmp.replaceAll("/", separa.trim());}}return tmp;}}

输出结果是

\
/
本地磁盘A  F:\aaa\bbbb\ccccc\dddddd\kj_20141016040327327.xls\  
本地磁盘B  F:\aaa\bbbb\ccccc\dddddd\kj_20141016040327327.xls
网络A  http:///aaa/bbbb/ccccc/dddddd/kj_20141016040327327.xls/  
网络B  http://aaa/bbbb/ccccc/dddddd/kj_20141016040327327.xls




0 0
原创粉丝点击