gpt4 book ai didi

java - 我必须打印找到模式的索引。就像 string = "ABCABCDEABCDEA"和 pattern = "ABCD"一样,输出将是 4 和 9

转载 作者:行者123 更新时间:2023-12-04 14:49:23 25 4
gpt4 key购买 nike

这是我编写的代码,它给出了错误的输出。我必须打印找到模式的索引。就像 string = "ABCABCDEABCDEA"和 pattern = "ABCD"一样,输出将是 4 和 9

让我来讨论一下它的方法——我想要的是字符串的第 i 个元素是否等于模式的第 0 个元素。然后进入循环,并检查直到 pattern.length。否则继续。

public class Word_check {

public static void main(String[] args) {
// TODO Auto-generated method stub
String str1="ABCDAFGFGFABCDKLHKHABCD";
String tocheck="ABCD";
boolean isfound=false;
int count=0;
for(int i=0;i<str1.length();i++) {

if(str1.charAt(i)==tocheck.charAt(count)){

for(int j=i;j<tocheck.length();j++) {

if(str1.charAt(j)==tocheck.charAt(count)) {

isfound=true;
}
else {
isfound=false;
break;
}
count++;
}
if(isfound==true) {
System.out.println(i+1);
}

}
else {
continue;
}
count=0;
}

}

最佳答案

试试这个 -

public static void main(String[] args) {
// TODO Auto-generated method stub
String str1="ABCDAFGFGFABCDKLHKHABCD";
String tocheck="ABCD";
int lastIndex = str1.indexOf(tocheck);
while (lastIndex != -1){
System.out.println(lastIndex);
lastIndex = str1.indexOf(tocheck, lastIndex + 1);
}
}

从您的示例中我看到您想要打印索引 + 1(在 Java 中索引从 0 开始,因此程序应该打印 3 和 8)。如果是这种情况,只需执行 System.out.println(lastIndex + 1);

关于java - 我必须打印找到模式的索引。就像 string = "ABCABCDEABCDEA"和 pattern = "ABCD"一样,输出将是 4 和 9,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69305142/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com