Java:IndexOf(字符串)返回错误字符
我正在编写一个文件浏览器程序,当用户在文件夹/文件之间导航时显示文件目录路径 我有以下字符串作为文件路径:Java:IndexOf(字符串)返回错误字符,java,string,stringbuilder,indexof,Java,String,Stringbuilder,Indexof,我正在编写一个文件浏览器程序,当用户在文件夹/文件之间导航时显示文件目录路径 我有以下字符串作为文件路径: "Files > Cold Storage > C > Capital" 我正在使用JavaindexOf(String)方法返回'C'字符在>C>之间的索引,但它会返回这个单词中第一个出现的Cold 我需要单独获取设置在>C>之间的'C'。 这是我的代码: StringBuilder mDirectoryPath = new StringBuilder("Files
"Files > Cold Storage > C > Capital"
我正在使用JavaindexOf(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());
}
我需要适合其他适当问题的灵活解决方案
感谢您的帮助 搜索“C”的首次出现: 然后将1添加到account以获取
'C'
的索引(假设找到了您搜索的字符串)
如果只想删除单个“C”字符:
if (i >= 0) {
mDirectoryPath.delete(i + 1, i + 2);
}
编辑:
如果搜索
“C”
仍可能返回错误的结果,请改为搜索“
。更好的方法是使用字符串的列表
public void test() {
List<String> directoryPath = Arrays.asList("Files", "Cold Storage", "C", "Capital");
int cDepth = directoryPath.indexOf("C");
System.out.println("cDepth = " + cDepth);
}
公共无效测试(){
List directoryPath=Arrays.asList(“文件”、“冷库”、“C”、“大写”);
int cDepth=directoryPath.indexOf(“C”);
System.out.println(“cDepth=“+cDepth”);
}
只需检查单词在字符前后是否有空格,您是否可以使用indexOf(“>”+mTreeLevel+“>”)+2
?假设我有这个字符串“Files>Cold C Storage>C>Capital”
那么它将错误地出现“C”@blueware您可以改为搜索“>C>”。
public void test() {
List<String> directoryPath = Arrays.asList("Files", "Cold Storage", "C", "Capital");
int cDepth = directoryPath.indexOf("C");
System.out.println("cDepth = " + cDepth);
}