の単一行文字列から文字列の内容を再配置しようとしています
(ファイル).DS_Store(~ファイル)(フォルダ)サーバー(ファイル).DS_Store(~ファイル)(フォルダ)test1(~フォルダ)(フォルダ)test2(~フォルダ)(フォルダ)test3(ファイル).DS_Store(~ファイル) )(フォルダ)test4(ファイル).DS_Store(~ファイル)(フォルダ)test5(ファイル).DS_Store(~ファイル)(ファイル)item.txt(~ファイル)(~フォルダ)(~フォルダ)(~フォルダ)( ~フォルダ)(ファイル)text.txt(~ファイル)
のような複数行の文字列に
(file).DS_Store(~file)
(folder)client
(folder)test6(~folder)
(folder)test7
(folder)test9
(folder)test10
(file)itemClient(~file)
(~folder)
(~folder)
(~folder)
(folder)test8(~folder)
(~folder)
(file)test.txt(~file)
(file)text.txt(~file)
再帰が役立つことはわかっていますが、再帰関数を記述しようとすると、最初の区切り記号のみがチェックされて停止し、残りの文字列はチェックされません。これは私が使用しているコードです。
public String getFileStructure(String list, int level){
String str = list;
String ret = "";
String fileStart = "(file)";
String fileEnd = "(~file)";
String folderStart = "(folder)";
String folderEnd = "(~folder)";
if (!list.isEmpty()) {
for (int i = 0; i < level; i++) {
ret+="\t";
}
if (str.startsWith(folderStart)) {
ret+= "[" + str.substring(str.indexOf(folderStart)+8, str.indexOf(folderEnd)) + "]\n";
getFileStructure(str, level + 1);
} else {
ret+= str.substring(str.indexOf(fileStart)+6, str.indexOf(fileEnd));
}
}
return ret;
}
しかし、それはちょうど戻ります
.DS_Store
.DS_Store