gpt4 book ai didi

java - 使用嵌套循环进行字符串比较

转载 作者:行者123 更新时间:2023-11-30 03:55:02 26 4
gpt4 key购买 nike

我正在学习这个在线 Java 类(class),每次类(class)结束后都很少有作业,而且我似乎无法解决这个问题。

我知道这不是练习的目的,但我尝试了一切,但看不到任何其他方法。

<小时/>

编写一个程序,返回一个字符串在另一个字符串中出现的次数。例如:

输入:
第一个字符串:

第二串:学生在工程学院努力学习,因为**他们**喜欢它

输出:
3

注意:您应该使用嵌套循环。不要使用某些方法,例如indexOf或substring

<小时/>

到目前为止,这是我的代码,我知道它并不完整,而且我很确定大多数决策语句都不需要。

编辑:这是一个 C# 代码,我在 Java 和 C# 上进行了测试

        String Text1 = Console.ReadLine();
String Text2 = Console.ReadLine();
int counter = 0;

for (int y = 0; y < Text1.Length; y++)
{

for (int x = 0; x < Text2.Length; x++)
{

if (Text1[y] == Text2[x])
{

if (y + 1 < Text1.Length && x + 1 < Text2.Length)
{
if (Text1[y + 1] == Text2[x + 1])
{

}
}


}

}

}

最佳答案

既然您正在做练习,我不会修复您的代码,而是帮助您自己修复它。

首先,一些基础知识:在 Java 中,您使用 charAt(i) 来访问单个字符。例如,

char ch = Text1.charAt(3);

获取从字符串开头算起的第四个字符(索引从零开始)。

现在讨论算法:您希望迭代第二个字符串的所有位置,并在其后添加足够的字符,以便与第一个字符串进行匹配。这意味着索引从零(含)到位置 Text2.length()-Text1.length()(不包括)。这是潜在匹配的起始位置 - 我们称之为 p

给定一个位置 p,您希望迭代从零开始的 Text1 的所有字符,并将它们与从 0 开始的 Text2 字符进行比较位置 p 处的字符。假设 Text1 中的索引称为 i,它从零(含)到 Text1.length()(不包括)。然后您需要比较 Text1.getChar(i)Text1.charAt(i+p) 是否相等。

在声明匹配之前,您需要完成与 Text1 的所有字符的比较。您需要知道外循环的结果,因此您需要使用 bool 标志。在内部循环之前将标志设置为 true。如果发现不匹配,请将标志设置为 false,然后跳出循环。

如果内部循环后标志为true,则递增计数器。

关于java - 使用嵌套循环进行字符串比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23447682/

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