Попытка преобразовать метод из строки в целое число - PullRequest
0 голосов
/ 14 октября 2018

Я пишу программу, которая будет подсчитывать количество запятых в строке, которую написал пользователь.

Я делаю это с помощью другого метода, в котором анализируется записанная строка, и количества запятых.

Проблема, с которой я столкнулся, заключается в том, что я использую строку, которую нужно преобразовать в целое число, сидя в методе, если это имеет смысл.

IЯ знаю, что это можно сделать проще, просто удалив метод и написав код в «main», но я не хочу этого, так как я буду расширять программу, чтобы также анализировать количество полных остановок и количество точек с запятой взаписанная строка.

Вот мой код:

static void Main(string[] args)
    {
        Console.WriteLine("Enter a text:");
        string text = Console.ReadLine();
        int count = 0;
        count = NumberOfCommas(text);
        int kommaCount = count;


        int NumberOfCommas(int text1)
        {
            foreach (char letter in text)
            {
                if (letter == ',' )
                {
                    count++;
                }
            }
            return count;
        }
        Console.WriteLine("There's {0} comma(s) in your text.", kommaCount);
        Console.ReadKey();
    }

Код ошибки, который я получаю: «Не удается преобразовать из« строки »в« int ». (код ссылается на«text 'часть этой строки: count = NumberOfCommas(text);)

Надеюсь, я хорошо это объяснил, поэтому мой вопрос: как мне это исправить?

Ответы [ 3 ]

0 голосов
/ 14 октября 2018

Это из-за подписи вашего метода.int NumberOfCommas(int text1) ищет int text1, и это должно быть string text1.

Кроме того, я хотел бы отметить две вещи.Во-первых, вы используете локальную функцию.В этом нет ничего плохого, и для того, что вы делаете здесь, все в порядке.Я мог бы предложить вытащить его, так как на самом деле в нем нет переменных, которые требуют, чтобы он оставался ограниченным для метода.

Другая вещь заключается в том, что вы думаете, что другие предпочтут поместить все это в mainно вы сказали

Я буду расширять программу

, поэтому вы решили отказаться от этого ... Это хорошая вещь и правильный способ мышления / развития, так что есликто-то говорит вам, чтобы для простоты это было главным, я говорю, чтобы вы придерживались своего оружия.Ты логика права.

0 голосов
/ 14 октября 2018
static void Main(string[] args)
{
    Console.WriteLine("Enter a text:");
    string text = Console.ReadLine();
    int count = 0;
    count = NumberOfCommas(text);

    Console.WriteLine("There's {0} comma(s) in your text.", count);
    Console.ReadKey();
}

int NumberOfCommas(String text1)
{
    int count;

        foreach (char letter in text1)
        {
            if (letter == ',' )
            {
                count++;
            }
        }
        return count;
}

Произошло несколько ошибок.Тип данных параметра для функции должен быть String, текст в цикле foreach должен быть text1.И вам не нужно считать переменные.

0 голосов
/ 14 октября 2018

Измените сигнатуру функции на

 int NumberOfCommas(string text1) { ...

Также переместите эту функцию из функции main.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...