我正在编写一个文件浏览器程序,当用户在文件夹/文件之间导航时,该程序会显示文件目录路径。
我有以下字符串作为文件路径:
"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());
}
我需要灵活的解决方案来解决其他适当的问题感谢您的帮助!
更好的方法是使用String
s的List
。
public void test() {
List<String> directoryPath = Arrays.asList("Files", "Cold Storage", "C", "Capital");
int cDepth = directoryPath.indexOf("C");
System.out.println("cDepth = " + cDepth);
}
搜索第一次出现的"C":
String mTreeLevel = " C ";
int i = mDirectoryPath.indexOf(mTreeLevel);
然后将1添加到account中以获得'C'
的索引(假设找到了您搜索的String)。
如果您只想删除单个"C"字符:
if (i >= 0) {
mDirectoryPath.delete(i + 1, i + 2);
}
编辑:
如果搜索" C "
仍然可能返回错误的出现,则搜索" > C > "
。