使用Substring方法对字符串中的特定字符进行计数

本文关键字:字符 方法 Substring 字符串 使用 | 更新日期: 2023-09-27 18:15:49

我是一个编程新手,我的一个练习是在循环中使用子字符串来计算用户输入的特定字符的迭代次数。

据我所知,对于练习,以及到目前为止我在C sharp中所知道的,在这里使用子字符串只会帮助读取输入中字符的位置,而不会计算它。这件事我一点也不明白,我很茫然。

我想知道如何理解这一点,以及我在哪些方面错过了练习的重点。我需要如何设置子字符串从终端用户的输入从控制台读取某种字符类型的数量的想法。

这是原来的问题:

有一个叫做Substring的方法,我们可以用它来查看字符串的一部分。

例如,下面的代码将打印字母a。

string input = "abcdef";  
Console.WriteLine(input.Substring(0, 1));

任务:

给定以下输入,创建一个循环,使用Substring方法计算字母' z '在用户输入的字符串中出现的次数。

asdfojiaqweb;ounqwrb;ounwqen;zzzn bnaozonza

编辑:到目前为止,我有代码来计算使用Z的次数,但我不知道如何将子字符串合并到其中

int total = 0;  
var letter = new HashSet<char> { 'z' };
Console.WriteLine("Please enter your letters:");
// asdfojiaqweb;ounqwrb;ounwqen;zzzn bnaozonza
string sentence = Console.ReadLine().ToLower();
for (int i = 0; i < sentence.Length; i++)
{
    if (letter.Contains(sentence[i]))
    {
        total++;
    }
}
Console.WriteLine("Total number of Z uses is: {0}", total);
// Console.WriteLine(sentence.Substring(0, 1));

使用Substring方法对字符串中的特定字符进行计数

如果必须使用Substring,则将循环替换为

for (int i = 0; i < sentence.Length; i++)
{
    if (sentence.Substring(i, 1) == "z")
    {
        total++;
    }
}

如果需要同时计数大写和小写的z,则使用以下代码

for (int i = 0; i < sentence.Length; i++)
{
    if (string.Equals(sentence.Substring(i, 1), "z", StringComparison.OrdinalIgnoreCase))
    {
        total++;
    }
}