思路:先把路径按反斜杠split成数组,然后用一个ArrayList去模拟。如果遇到空或者.则不处理;如果遇到..则删除ArrayList最后一个元素(注意如果只有1个元素则不删除);其他情况直接加到ArrayList里面。注意特判输入空串的情况。

 import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
String curPath = cin.next();
String[] curPathArr = curPath.split("/", -1);
cin.nextLine();
while (n-- > 0) {
String path = cin.nextLine();
if (path.length() == 0)
System.out.println(curPath);
else {
String[] pathArr = path.split("/", -1);
ArrayList<String> resultArr = new ArrayList<String>();
int st = 1;
if (pathArr[0].length() == 0)
resultArr.add("");
else {
for (String s : curPathArr)
resultArr.add(s);
st = 0;
}
for (int i = st; i < pathArr.length; i++) {
if (pathArr[i].equals("..")) {
if (resultArr.size() > 1)
resultArr.remove(resultArr.size() - 1);
}
else if (!pathArr[i].equals(".") && !pathArr[i].equals(""))
resultArr.add(pathArr[i]);
}
if (resultArr.size() == 1)
System.out.println("/");
else {
for (int i = 0; i < resultArr.size() - 1; i++)
System.out.print(resultArr.get(i) + "/");
System.out.println(resultArr.get(resultArr.size() - 1));
}
}
}
}
}

最新文章

  1. 字符串处理——(第一次作业Draw输入命令处理部分升级)
  2. sort将文件的每一行作为一个单位按ASCII码值进行比较
  3. linux线程的实现【转】
  4. oreData的学习记录
  5. c# ado 连接数据库 六步曲
  6. Samba 安全漏洞
  7. Javascript代码摘录
  8. [TYVJ1827]『Citric II』一道防AK好题
  9. PHP编程规范
  10. C/C++内存存储问题
  11. 断开/删除 SVN 链接(.svn)的几种方法
  12. 第一课 1) 控制div属性 总结
  13. 34. leetcode 447. Number of Boomerangs
  14. Java面向对象 线程技术 -- 下篇
  15. 下篇: php 微商城 基于Thinkphp3.2框架开发
  16. mvn管理项目jar包
  17. DSAPI 键盘鼠标钩子
  18. idea操作整理
  19. Android Api 27 在 Android 8.0 上出现 Only fullscreen opaque activities can request orientation 的解决情况
  20. MVC 5使用TempData Object跨视图传递数据

热门文章

  1. bsp开发之驱动开发
  2. SpringBoot学习之文件结构和配置文件
  3. oracle死锁解决经常用法(屡试不爽)
  4. bzoj 1030: [JSOI2007]文本生成器 (ac自己主动机上的dp)
  5. STL review:vector &amp; string &amp; map &amp; struct
  6. 设计模式学习笔记——Decorator装饰模式
  7. 使用Mock.js进行独立于后端的前端开发
  8. 20170225 ABAP获取字符串长度/字节长度
  9. spring-jar包详解整理(大合集)
  10. Windows 7 繁体中文MSDN原版