将结果与string方法混淆。indexOf()Java
我目前正在阅读AP计算机科学考试学习指南,其中一个问题让我遇到了麻烦将结果与string方法混淆。indexOf()Java,java,substring,indexof,Java,Substring,Indexof,我目前正在阅读AP计算机科学考试学习指南,其中一个问题让我遇到了麻烦 String s = "mathematics"; String vowels = "aeiou"; int number = 0; for(int i = 0;i<s.length();i++){ number += s.indexOf(vowels.substring(0)); } String s=“数学”; 字符串元音=“aeiou”; 整数=0; 对于(
String s = "mathematics";
String vowels = "aeiou";
int number = 0;
for(int i = 0;i<s.length();i++){
number += s.indexOf(vowels.substring(0));
}
String s=“数学”;
字符串元音=“aeiou”;
整数=0;
对于(int i=0;i首先,认识到元音。子字符串(0)
不起任何作用。来自位置0
的子字符串等同于字符串本身
字符串元音
,或“aeiou”
,不会出现在“mathematics”
中的任何地方,因此indexOf
将返回-1
11次(“mathematics”
是长度11
)。因此,number
结尾的结果是-11
虽然还不清楚您想要的是什么,但是如果您想要获得字符串s
中每个元音的位置,您必须为循环重新编写,并使用charAt(i)
或子字符串(i,i+1)
,这是因为子字符串(0)返回完整的字符串
您可以尝试了解以下内容:
System.out.println(vowels.substring(0));
元音的结果。子字符串(0)是“aeiou”,字符串s(“数学”)中不存在“aeiou”