Java:IndexOf(String string)表示returns错误的字符

Java: IndexOf(String string) that returns wrong character

我正在编写一个文件浏览器程序,当用户在 folders/files.

之间导航时显示文件目录路径

我有以下字符串作为文件路径:

"Files > Cold Storage > C > Capital"

我正在使用 Java indexOf(String) 方法 return > C > 之间 'C' 字符的索引,但它 return它第一次出现在这个词 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());
}

我需要适合其他适当问题的灵活解决方案 感谢您的帮助!

搜索第一次出现的“C”:

String mTreeLevel = " C ";
int i = mDirectoryPath.indexOf(mTreeLevel);

然后account加1得到'C'的索引(假设找到了你搜索的String)

如果您只想删除单个 'C' 字符:

if (i >= 0) {
    mDirectoryPath.delete(i + 1, i + 2);
}

编辑:

如果搜索 " C " 可能仍然 return 出现错误,请改为搜索 " > C > "

更好的方法是使用 ListString

public void test() {
    List<String> directoryPath = Arrays.asList("Files", "Cold Storage", "C", "Capital");
    int cDepth = directoryPath.indexOf("C");
    System.out.println("cDepth = " + cDepth);
}