Java基于索引值构建字符串

时间:2014-04-04 16:08:34

标签: java string list stringbuilder

我目前正在尝试找出以正确顺序组装Windows文件路径的最佳方法,给定它的目录,这是一个例子:

File: 49ACA1~1.JPG

9 Users
8 user
7 AppData
6 Local
5 MICROS~1
5 Microsoft
4 Windows
3 TEMPOR~1
3 Temporary Internet Files
2 Low
1 Content.IE5
0 MESTLGE4

我已经根据给定此功能的输入使用自定义比较器对列表进行了排序,因此最高编号是路径中的第一个目录,最低编号是最后一个。

但是,正如您所看到的,数字5和3出现两次,这是因为它们是同一个目录,只是由8.3和完整的NTFS名称引用。

我对从这些构建字符串的最佳方式感到困惑,因为在它们被命令时,一旦命中目录5,将需要两个字符串,一个包含8.3名称,另一个包含完整的ntfs,我无法告诉分裂将在哪里提前发生。

这只是一个例子,一些文件有一个目录,而其他文件可能包含任何数字,可能是> 20,所以我希望以这样一种方式来构建它,以至于它不会成为维持的噩梦。

我尝试使用StringBuilder,但循环和插入很快就会变得混乱。我只是想知道是否还有另一种可能更清洁的方法。我确实考虑过使用ArrayList,但我认为这可能会产生相同的循环问题。

我很高兴收到任何意见或建议。

由于

这里的输出应该是什么样的:

8.3 = Users\user\AppData\Local\MICROS~1\Windows\TEMPOR~1\Low\Content.IE5\MESTLGE4
NTFS = Users\user\AppData\Local\Microsoft\Windows\Temporary Internet Files\Low\Content.IE5\MESTLGE4

1 个答案:

答案 0 :(得分:0)

如果您不关心接收哪种类型的路径(8.3或完整路径,或两者的组合)并且只想要一个工作路径,您可以使用自定义比较器创建TreeSet,这将照顾重复和订购。