我正在编写一个文件浏览器程序,当用户在文件夹/文件之间导航时显示文件目录路径。
我有以下字符串作为文件路径:
"Files > Cold Storage > C > Capital"
我正在使用Java indexOf(String)
方法在'C'
之间返回> C >
字符的索引,但它会从此字Cold
返回第一个字符。
我需要在'C'
之间单独设置> C >
。
这是我的代码:
StringBuilder mDirectoryPath = new StringBuilder("Files > Cold Storage > C > Capital");
String mTreeLevel = "C";
int i = mDirectoryPath.indexOf(mTreeLevel);
if (i != -1) {
mDirectoryPath.delete(i, i + mTreeLevel.length());
}
我需要灵活的解决方案,以适应其他适当的问题 任何帮助表示赞赏!
答案 0 :(得分:1)
搜索第一次出现" C" :
String mTreeLevel = " C ";
int i = mDirectoryPath.indexOf(mTreeLevel);
然后将1添加到帐户以获取'C'
的索引(假设找到了您搜索的字符串)。
如果你只想删除单个' C'性格:
if (i >= 0) {
mDirectoryPath.delete(i + 1, i + 2);
}
编辑:
如果搜索" C "
可能仍会返回错误的搜索结果,请搜索" > C > "
。
答案 1 :(得分:1)
更好的方法是使用List
String
s。
public void test() {
List<String> directoryPath = Arrays.asList("Files", "Cold Storage", "C", "Capital");
int cDepth = directoryPath.indexOf("C");
System.out.println("cDepth = " + cDepth);
}