我的字符串看起来像这样
123_NAME
MONTHLY
MONTHLY 53_January_2013
MONTHLY 54_February_2013
MONTHLY 55_March_2013
MONTHLY 56_April_2013
QUARTERLY
QUARTERLY 51_First_Quarter_2013
QUARTERLY 54_Second_Quarter_2013
QUARTERLY 57_Third_Quarter_2013
QUARTERLY 60_Fourth_Quarter_2013
以上是我从目录中提取并作为列表打印的文件列表。文件位于本地计算机上,与上面的目录结构相同。例如文件夹每月将包含名称为jan,feb,mar等的文件,文件夹季度包含名称为1quarte,2nd quarter等的文件。
我需要附加我正在打印的文件列表
Monthly
Jan 2013
Feb 2013
Continue....
Quarterly
first Quarter 2013
second quarter 2013
Continue...
以下是我的代码的一部分将给出一些想法
Iterator<String> iterator=listFilesForFolder(folder, startWithDirectory, filesArray).iterator();
while(iterator.hasNext()){
String listofFiles=iterator.next();
StringBuilder str=new StringBuilder(listofFiles);
String test=str.substring(str.indexOf("/")+1);
System.out.println(test);
答案 0 :(得分:0)
我猜您希望以下列方式输出(在同一行中):
Folder > file1, file2, ...
而不是(在新行中):
Folder
File1
File2
如果是这样的话,您是否知道最后没有打印新行的System.out.print()
?
尝试调整它,插入所需的分隔符(如逗号和角括号)。
此外,由于您使用的是StringBuilder,因此它可以使用append()
方法。但是,我认为没有理由将str
使用StringBuilder,而不是将其用于test
。
答案 1 :(得分:0)
在你的while
循环中,如果你不介意硬解释,你可以尝试这样的事情。
String[] split = listOfFiles.split("_")
if(split.length > 1) {
if(split[0].contains("MONTHLY")) { //unique case
System.out.println(split[1].substring(0, 3) + " " + split[2]);
}
else {
for(int i = 1; i < split.length(); i++) {
System.out.print(split[i] + " ");
}
System.out.println("");
}
}
else {
System.out.println("\n" + listOfFiles + "\n");
}