问答详情
源自:2-3 Java 中 String 类的常用方法 Ⅰ

关于19行索引问题

 既然字符串索引从0开始,为什么 19行那里最后一个字符不是fileName.length()-1呢?

提问者:不多bb 2019-02-09 23:56

个回答

  • Tears丶
    2019-02-18 17:22:59
    已采纳

    索引从0开始,你就当他从1开始,本来要的不就是后一位吗,

    String prefix = fileName.substring(fileName.lastIndexOf(".") + 1);
    fileName.lastIndexOf(".")这个式子取得一直是点的索引,4,5--5,6。的差距。你自己好好想想,这是我自己的理解。


  • 宝慕林3393955
    2019-03-25 19:59:59

    为啥要采纳,使用 substring(beginIndex , endIndex) 进行字符串截取时,包括 beginIndex 位置的字符,不包括 endIndex 位置的字符,你写fileName.length()-1不就成获取"jav"了,而不是"java".

  • 好讨厌敲代码呀
    2019-02-11 13:46:58

    比如一个文件的名称是Test.java,在第16行获取'.'的位置,
    填写代码:
    int index=fileName.lastIndexOf('.');
    在这里获取了点最后一次出现的位置,所以接下来在19行应该判断文件后缀是否为java
    填写代码:
    String prefix =fileName.substring(index+1);
    这里,index为点的位置,加1,既为j的位置,substring()用于提取从j开始,到文件结尾的字符序列。
    最后通过equals进行比较。
    length获取的是当前字符串的总长度,这里填写不合适。