使用嵌套循环在另一个字符串中出现一个字符串

穆罕默德·埃卡迪(Mohamed Elkady)

该练习要求仅使用循环而不使用构造函数或阵列,这在使用数组和构造函数的所有站点上均提供了所有帮助。我花了一个星期的时间到达代码,研究了大量的试验,寻找相似的问题集,但都没有帮助,没有达到最后一步的输入:字符串1:哦,字符串2:哦,哦

输出:7不正确

输出必须是(3)我的代码在所有字符串输入中均有效,但在重复的字母上不正确

    Scanner input = new Scanner(System.in);
    String text1 = input.nextLine();
    String text2 = input.nextLine();
    int res = 0;
    for (int i=0;i<text2.length()-text1.length();i++)
    {
       if (text1.charAt(0) == text2.charAt(i))
       {
          boolean found = true;
          for (int j=0;j<text1.length() && found;j++)
              if (text1.charAt(j) != text2.charAt(i+j))
                  found = false;
          if (found)
              res++;
       }
    }
    System.out.println(res);
阿文德·库玛·阿维纳什(Arvind Kumar Avinash)

你快到了。经过以下更改,您的代码将按预期工作:

  1. 增量itext1.length() - 1每次text1被发现,j == text1.length()递增itext1.length() - 1循环的递增部分将递增i1导致i递增text1.length()
  2. 将条件从修改i < text2.length() - text1.length()i < text2.length()
  3. 将条件从修改j<text1.length() && foundj < text1.length() && found && i + j < text2.length()

您也可以通过在条件text1.charAt(j) != text2.charAt(i + j)变为时中断内部循环来提高程序的效率true

import java.util.Scanner;

class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        System.out.print("Enter the substring: ");
        String text1 = input.nextLine();
        System.out.print("Enter the string to search into: ");
        String text2 = input.nextLine();
        int res = 0;
        for (int i = 0; i < text2.length(); i++) {
            if (text1.charAt(0) == text2.charAt(i)) {
                boolean found = true;
                int j;
                for (j = 0; j < text1.length() && found && i + j < text2.length(); j++) {
                    if (text1.charAt(j) != text2.charAt(i + j)) {
                        found = false;
                        break;
                    }
                }
                if (j == text1.length() && found) {
                    res++;
                    i += text1.length() - 1;
                }
            }
        }
        System.out.println(res);
    }
}

运行示例:

Enter the substring: ooo
Enter the string to search into: Wooooooooow
3

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java使用嵌套循环在另一个字符串中查找一个字符串出现的次数

如何计算一个字符串元素在ruby的另一个字符串中出现的次数?

如何计算一个字符串在VBA中另一个字符串中出现的次数?

Pascal脚本计数一个字符串在另一个字符串中出现的次数

用自定义处理替换另一个字符串中出现的一个字符串

JAVA:方法,一个字符串在另一个字符串中出现多少次

计算一个字符串在另一个字符串中每个字符的出现次数

使用数组和foreach循环从另一个字符串中获取一个字符串

使用 for 循环在另一个字符串中查找一个字符串

如何在使用 Javascript 的字符串中出现另一个字符串标记之前插入字符串标记

grep:如果另一个字符串没有出现,则计算一个字符串出现的次数

For 循环一个字符串

Ruby:如何计算一个字符串出现在另一个字符串中的次数?

查找一个字符串是否出现在另一个字符串之前

R 如何计算一个字符串向量在另一个字符串向量中的出现次数

用另一个字符串环绕字符串

字符串包含另一个字符串

在另一个字符串的开头插入字符串

如果字符串在另一个字符串内

从另一个字符串限制字符串

排序一个字符串数组,使用另一个字符串数组确定顺序

使用动态中的指针将一个字符串复制到另一个字符串

使用bash脚本如何检查一个字符串是否在另一个字符串内

如何使用另一个字符串作为密码来加密/解密一个字符串?

使用re在另一个字符串中找到一个字符串

使用 PHP 将一个字符串与另一个字符串匹配

使用C ++将一个字符串替换为另一个字符串

使用getch后如何在另一个字符串的末尾连接一个字符串

如何编写一个程序来返回另一个字符串中出现一个字符串的次数?