使用Substring方法计算字符串

时间:2016-11-01 03:02:50

标签: c# string

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

据我所知,这个练习以及我目前在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));

1 个答案:

答案 0 :(得分:0)

如果您必须使用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++;
    }
}