我使用了两个不同的字符串来测试“\t”的最后一个索引,但它们都返回 4。我认为它应该是 5 和 4。我检查了 oracle 文档,但我不明白为什么。有人可以告诉我为什么吗?谢谢!

System.out.println("abc\t\tsubdir".lastIndexOf("\t"));
System.out.println("abct\tsubdir".lastIndexOf("\t"));

最佳答案

让我们通过索引的数量来更好地理解它:

字符串 1

a b c \t \t s u b d i r
0 1 2  3  4 5 6 7 8 9 10
          ^-----------------------------------last index of \t (for that you get 4)

字符串 2
a b c t \t s u b d i r
0 1 2 3  4 5 6 7 8 9 10
         ^-----------------------------------last index of \t (for that you get 4)

有一些特殊字符应该由 \ 转义(tab \t ,breadline \n ,quote \" ...)在 Java 中,所以它算作一个字符而不是 2

关于Java - String.lastIndexOf(str) 逻辑我无法理解,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51993409/

10-11 09:13