String str = "Aardvark";
str.indexOf('a');
我想知道如果索引 str 要求某个字符并且字符串包含多个字符,它会返回什么。例如,aardvark:该方法是否会返回索引 0,对于它第一次看到字符的实例?单词中有 3 个"a"字符,那么它会返回哪个?
一个额外的问题(无法将其放入原始问题中(两者之间有什么区别
str.indexOf('a');
和
str.indexOf("a");
我知道第一个是字符,第二个是字符串,但如果 str = "Aardvark",第二个语句不会返回 -1 或某种错误,因为"a"指的是单字符字符串,而不是字符串的一个字符?
如果不清楚,我很抱歉,我真的想不出更好的方法来提出我的问题。提前感谢!
-
indexOf()
将返回字符串/字符第一次出现的索引 - 就像你说的,一个寻找字符,另一个在子字符串上查找。将找到"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 字符串规范