indexOf 方法要求多次出现的字符


 String str = "Aardvark";
 str.indexOf('a'); 

我想知道如果索引 str 要求某个字符并且字符串包含多个字符,它会返回什么。例如,aardvark:该方法是否会返回索引 0,对于它第一次看到字符的实例?单词中有 3 个"a"字符,那么它会返回哪个?

一个额外的问题(无法将其放入原始问题中(两者之间有什么区别

 str.indexOf('a');

 str.indexOf("a");

我知道第一个是字符,第二个是字符串,但如果 str = "Aardvark",第二个语句不会返回 -1 或某种错误,因为"a"指的是单字符字符串,而不是字符串的一个字符?

如果不清楚,我很抱歉,我真的想不出更好的方法来提出我的问题。提前感谢!

  1. indexOf()将返回字符串/字符第一次出现的索引
  2. 就像你说的,一个寻找字符,另一个在子字符串上查找。将找到"a",因为"a"是"Aardvark"的子字符串

它将打印第一个匹配项。

要获得第二次出现,您将不得不填

indexOf(char c, int lookafterfirstindex);

indexOf 也可以采用这两个参数,而不仅仅是字符。

链接到 API 文档:

https://docs.oracle.com/javase/7/docs/api/java/lang/String.html#indexOf(java.lang.String,%20int(

下面是一个简单的例子:

String text = "abcd_a";
    System.out.println("Index of a: "+ text.indexOf('a'));  // Index of a: 0
    System.out.println("Index of a: "+ text.indexOf("a"));  // Index of a: 0
    System.out.println("Index of b: "+ text.indexOf('b'));  // Index of b: 1
    System.out.println("Index of c: "+ text.indexOf('c'));  // Index of c: 2
    System.out.println("Index of z: "+ text.indexOf('z'));  // Index of z: -1

的简单索引 :indexOf(char/string( 将始终返回出现的第一个索引。

从索引: 还有 indexOf(char/string, int fromIndex( - 它将从字符串中的给定位置进行搜索。

最后一个索引 :有一个 lastIndexOf(char/string( - 它将搜索最后一个出现的位置。

关于 char 与字符串,如果我只需要一个 char 索引查找,我会使用 char。字符的形成速度比字符串索引查找方法快得多!!

Java 字符串规范

最新更新