繁体   English   中英

我无法理解 Java 11 中的这个 lastindexof 方法

[英]I cant understand this lastindexof method in Java 11

    int a="abcd".indexOf("d",0);
    int b="abcd".indexOf("d",1);
    int c="abcd".indexOf("d",2);
    int d="abcd".indexOf("d",3);
    int e="abcd".indexOf("d",4);
    int f="abcd".indexOf("d",5);




    int b1="abcd".indexOf("d",-1);
    int c1="abcd".indexOf("d",-2);
    int d1="abcd".indexOf("d",-3);
    int e1="abcd".indexOf("d",-4);
    int f1="abcd".indexOf("d",-5);


    System.out.println("Last index of from index 0 "+a);
    System.out.println("Last index of from index 1 "+b);
    System.out.println("Last index of from index 2 "+c);
    System.out.println("Last index of from index 3 "+d);
    System.out.println("Last index of from index 4 "+a);
    System.out.println("Last index of from index 5 "+f);


    System.out.println("Last index of from index -1 "+b1);
    System.out.println("Last index of from index -2 "+c1);
    System.out.println("Last index of from index -3 "+d1);
    System.out.println("Last index of from index -4 "+e1);
    System.out.println("Last index of from index -5 "+f1);

结果

Last index of from index 0 3
Last index of from index 1 3
Last index of from index 2 3
Last index of from index 3 3
Last index of from index 4 3
Last index of from index 5 -1
Last index of from index -1 3
Last index of from index -2 3
Last index of from index -3 3
Last index of from index -4 3
Last index of from index -5 3

有人可以解释正负指数是如何工作的吗?

它没有为indexOf(String, int)拼写出来,但indexOf(int, int)的行为方式相同(强调我的):

fromIndex的值没有限制。 如果它是负数,它的效果与它为零一样:可以搜索整个字符串。 如果它大于此字符串的长度,则其效果与等于此字符串的长度相同:返回 -1。

(请注意,您的文本谈到lastIndexOf ,但代码是indexOflastIndexOf的逻辑是相反的:虽然在任何负索引之后找到整个字符串,但没有一个字符串在负索引前面,所以lastIndexOf带有负起点永远找不到任何东西。)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM