下面的代码可以正常工作,我只是无法理解代码中的那一部分
if (temp.indexOf(Search.charAt(j)) == -1){
cpt=0;
} else {
cpt++;
}
那是什么意思?
public static void main(String[] args) {
String Search="loop";
String[] words={"loop","pool","lopo","book","kobo","oopl","olop","opol"};
int cpt=0;
String temp;
for(int i=0;i<words.length;i++){
temp=words[i];
for (int j=0 ; j<Search.length();j++) {
if (temp.indexOf(Search.charAt(j))==-1){
cpt=0;
} else {
cpt++;
}
if (cpt==4){
System.out.println("-> :"+ temp);
cpt=0;
}
}
}
}
答案 0 :(得分:1)
代码的想法是遍历列表中的每个单词(称为temp
),并计算temp
中出现的Search
中有多少个字符。
例如“ loop”和“ pool”都具有1个“ p”,1个“ l”和2个“ p”个字符。
但这并不完全正确...
此行if (temp.indexOf(Search.charAt(j))==-1)
正在检查temp
中是否存在Search [j]
但应该更像
if(临时在某个索引处有这个Search [j]字符(称为t),而t以前没有使用过)
对于“循环”和“垂降”之类的情况,这应该会失败
另外,您正在对代码中的数字4进行硬编码,应将其替换为Search
的长度
我建议使用地图。
答案 1 :(得分:0)
我们知道方法的索引在两个条件下起作用.....
条件1-如果给定字符存在于字符串中,则表示 字符在索引0到string.lenth-1索引处可用。
条件2-如果在字符串中不存在给定字符,则表示该字符 从0索引到整个字符串在该字符串中不可用, 返回-1也是如此。