我需要在c#中使用For循环比较两个字符串

本文关键字:比较 字符串 两个 循环 For | 更新日期: 2023-09-27 18:12:06

我需要使用For比较2个字符串,而不使用String.compare。(这是家庭作业……我两周前开始编程c#)

我就是不知道如何使用for循环来回答这个问题。我不知道该为()写什么。我试过for( string text1 = "something",),但我不知道在for循环之后该放什么

我需要在c#中使用For循环比较两个字符串

由于这是一个家庭作业问题,我建议你在最后得到答案之前,一旦你认为你有足够的信息来自己解决它,就停止阅读答案。

首先,让我们假设一个简单的方法签名:
public static bool AreStringEqual(string str1, string str2)
{
}

我们的目标是实现(编写代码)这个方法。假设我们的目标是如果两个字符串相等则返回true,如果不是则返回false。我们不会做任何花哨的事情,比如让它不区分大小写。

首先我们可以对字符串做一些基本的检查。如果它们的长度不同,则可以立即假定字符串不同,并返回false:

if (str1.Length != str2.Length)
{
    return false;
}

该块检查长度,如果它们不同,则立即返回false,方法的其余部分不执行。

此时,我们可以保证字符串长度相同,因此我们可以遍历字符串并使用for循环逐个字符地比较它们。

for(int counter = 0; counter < str1.Length; counter++)
{
}

这是一个非常标准的for循环,它只从0到1计算一个比字符串长度小的数字。如果我们使用str1str2作为循环的上界并不重要,因为我们已经知道它们的长度相同。

要获取字符串中的字符,可以使用Indexer语法获取给定位置的字符。在c#和。net中,数字从0开始。

str1[0]获得第一个字符,str1[1]获得第二个字符,以此类推。

然后,我们可以将for循环中的变量插入str1str2的索引器中,然后比较字符。如果它们不相等,则返回false。
for(int counter = 0; counter < str1.Length; counter++)
{
    if (str1[counter] != str2[counter])
    {
        return false;
    }
}

最后,如果代码通过了for循环而没有返回false,那么在结束时返回true。把它们放在一起,看起来像这样:

public static bool AreStringEqual(string str1, string str2)
{
    if (str1.Length != str2.Length)
    {
        return false;
    }
    for(int counter = 0; counter < str1.Length; counter++)
    {
        if (str1[counter] != str2[counter])
        {
            return false;
        }
    }
    return true;
}