public class Example9_3{
  public static void main(String[] args){
    String path="c:\\book\\javabook\\Java Programmer.doc";
int index=path.indexOf("\\");
index=path.indexOf("\\",index);
String sub=path.substring(index);
System.out.println(sub);//输出结果是:\book\javabook\Java Programmer.doc
index=path.lastIndexOf("\\");
sub=path.substring(index+1);
System.out.println(sub);//输出结果是:Java Programmer.doc
System.out.println(sub.contains("Programmer"));//输出结果是:true
  }
}
我觉得第一个输出结果应该是:\\book\\javabook\\Java Programmer.doc.
求讲解,本人初学者。在此先谢谢各位大神了。

解决方案 »

  1.   

    那是转义字符 String path="c:\\book\\javabook\\Java Programmer.doc";System.out.print(path);输出结果就是 c:\book\javabook\Java Programmer.doc和 indexOf 没半毛钱关系
      

  2.   

    在java里"\"是一个通配符,所以你是不能单独使用它的,如果你要表示一个"\"字符,那么就得是这么表示"\\"。
      

  3.   

    c:\\book\\javabook\\Java Programmer.doc 中的"\"为转义,
    内存中的内容为:c:\book\javabook\Java Programmer.doc
    int index=path.indexOf("\\");  第一次出现"\"的位置是2 即 index=2 
    index=path.indexOf("\\",index); 在index 位置开始查询第一次出现"\" 的位置,第一个就是"\" 所以index 还是等于2 
    String sub=path.substring(index); 从第二个位置开始截取:
    所以输出结果:\book\javabook\Java Programmer.docint indexOf(String str) 
              返回第一次出现的指定子字符串在此字符串中的索引。 
     int indexOf(String str, int fromIndex) 
              从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。