Java:IndexOf(字符串),返回错误的字符



我正在编写一个文件浏览器程序,当用户在文件夹/文件之间导航时,该程序会显示文件目录路径。

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

"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 > "

最新更新