博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
csp 2016_4_3 路径解析
阅读量:4215 次
发布时间:2019-05-26

本文共 1351 字,大约阅读时间需要 4 分钟。

public class Main {	public static void main(String[] args) {		Scanner in = new Scanner(System.in);		int p = in.nextInt();		String a = in.nextLine();//读取多余换行符		String str = in.nextLine();		String []s = new String[p];		for(int i = 0; i < p; i++ ) {			s[i] = in.nextLine();		}		for(int i = 0; i < p; i++ ) {			if(s[i].length() == 0) {//空字符默认为相对路径 但是不能直接输出 因为 可能 输入的当前路径str 也是待正则化的 路径				s[i] = str+s[i];			}		}		for(int i = 0; i < p; i++ ) {			if(s[i].charAt(0) != '/') {				s[i] = str + "/"+s[i];//路径为相对路径时			}		}		int i, pos;		for(i = 0; i < p; i++ ) {			//处理//			while((pos = s[i].indexOf("//")) != -1) {				int count = 2;				while(pos + count != s[i].length() && s[i].charAt(pos+count) == '/') {					count++;				}				s[i] = s[i].substring(0, pos) + s[i].substring(pos+count-1, s[i].length());			}			//处理/./			while((pos = s[i].indexOf("/./"))!= -1) {				s[i] = s[i].substring(0, pos+1) + s[i].substring(pos+3,s[i].length());			}			//处理/../			while((pos = s[i].indexOf("/../"))!= -1) {				if(pos == 0) {					s[i] = s[i].substring(3, s[i].length());				}				else {					int tPos1 = s[i].lastIndexOf("/", pos-1);					s[i] = s[i].substring(0, tPos1) + s[i].substring(pos+3, s[i].length());				}			}			//处理末尾/			if(s[i].length() > 1 && s[i].charAt(s[i].length()-1) == '/')				s[i] = s[i].substring(0, s[i].length()-1);			System.out.println(s[i]);		}					}}

转载地址:http://slimi.baihongyu.com/

你可能感兴趣的文章
观察者模式(Observer),责任链模式,访问者模式(Visitor)
查看>>
状态模式(State)
查看>>
快速排序
查看>>
插入算法
查看>>
希尔排序
查看>>
选择排序
查看>>
归并排序
查看>>
归并排序
查看>>
插入排序进行链表排序
查看>>
android实现截图功能
查看>>
android 网络连接状态判断与数据类型
查看>>
android webview 实现网页加载进度
查看>>
《人性的弱点》
查看>>
《大师们是如何工作的》
查看>>
c++ 中的多重继承和其权限问题
查看>>
那些年
查看>>
android listview 图文并茂
查看>>
《浪潮之巅》1 AT&T
查看>>
《浪潮之巅》2蓝色巨人 IBM公司
查看>>
《浪潮之巅》3水果公司的复兴
查看>>