Почему значение "count" равно 1 вместо 2? - PullRequest
0 голосов
/ 17 февраля 2020

В приведенном ниже коде я пытался найти количество слов между «-», поэтому я использовал string.Equals (), но он не работает. И просто увеличиваем значение «count» в секции печати. ​​

static void Main() 
{
    int count=0, i;
    string inputString = "Anupam-Datta";
    Console.WriteLine(inputString.Length);
    for(i = 0; i < inputString.Length; i++)
    {
        if(inputString[i].Equals("-"))
            count++;
    }
    Console.WriteLine("Number of words: {0}", ++count);
}

Ответы [ 2 ]

1 голос
/ 17 февраля 2020

Чтобы проверить один символ - это то, что на самом деле возвращает inputString[i] - вы должны сравнить его с другим char, а не с string.

Вместо этого используется следующее:

Console.WriteLine(inputString.Length);
for(i=0; i<inputString.Length; i++){
    if(inputString[i] == '-')
        count++;
}
Console.WriteLine("Number of words: {0}", count++);

Альтернативно этот умный однострочный:

var count = inputString.Count(x => x == '-') + 1;
0 голосов
/ 17 февраля 2020

Если вам нужно количество слов, разделенных символом "-", попробуйте это:

public static void Main() 
{
    string s = "Anupam-Datta";
    int count = s.Split('-').Count();
    Console.WriteLine($"Numer of words: {count}.");
}
...