Замена нескольких слов в строковом предложении C# - PullRequest
1 голос
/ 14 февраля 2020

Привет, ребята, мне не нужен ответ, но я хотел бы узнать, что я делаю неправильно. Будучи новичком, я получил очень «легкое» задание в учебе. Мне нужно создать строку, и внутри этой строки мне нужно заменить некоторые слова другими словами без использования for для l oop следующим образом: (также я хочу напечатать его, но я не знаю, куда поместить Console.WriteLine и google поиск в течение 1 часа не работал или не спрашивал коллегу.

/ * Excersice: использование со строителем строк * кошка становится маленькой кошкой * собака становится маленькой собачкой * мышь становится маленькой мышкой * слова, которые необходимо заменить на * не используйте al oop* /


using System;
using System.Collections.Generic;
using System.Text;

namespace Opgavens_leerpad_3_oefening
{
    class Program
    {
        static string Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();

            string dogCat = new string("Can the cat find the mouse without waking the dog.");

            static string replacethisstring(string dogCat);
            {
                hondKat = dogCat.Replace("cat", "littlecat");
                hondKat = dogCat.Replace("dog", "littldog");
                hondKat = dogCat.Replace("mouse", "littlemouse");
                hondKat = dogCat.Replace("the", "a");
                return dogCat;
            }
        }
    }
}

Ошибка CS5001: Программа не содержит stati c «Основной» метод, подходящий для точки входа (я не получаю это 'почти любая программа запускается с этими состояниями c Основные аргументы?)

Ошибка CS8112: replacethisstring (string)' является локальной функцией и поэтому всегда должна иметь тело. (I просто дал ему тело, верно? Я открыл {и закрыл его} и вставил замену с возвратом.)

Ответы [ 3 ]

3 голосов
/ 14 февраля 2020

Объявление метода заканчивается на ;, поэтому CS8112

Метод Main должен вернуть void (или 'int'), который вы изменили, до string, вот почему CS5001

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

using System;

....

 Console.WriteLine(output)
1 голос
/ 14 февраля 2020
  1. Ваш главный должен иметь void в качестве типа возврата. Строка недопустима, но int является опцией ( см. ссылку )
  2. В конце объявления функции, имеющего тело, не может быть ;.
  3. Вы должны объявить переменную, прежде чем сможете ее использовать ... string hondKat;
  4. См. Использование StringBuilder в приведенном ниже коде вместо строки.
namespace Opgavens_leerpad_3_oefening
{
    class Program
    {
        public static void Main(string[] args)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("Can the cat find the mouse without waking the dog.");
            sb = replacethisstring(sb);

            Console.WriteLine(sb.ToString());
            Console.ReadLine(); // To Stop the Console from closing.

            static StringBuilder replacethisstring(StringBuilder dogCat)
            {
                dogCat = dogCat.Replace("cat", "littlecat");
                dogCat = dogCat.Replace("dog", "littldog");
                dogCat = dogCat.Replace("mouse", "littlemouse");
                dogCat = dogCat.Replace("the", "a");
                return dogCat;
            }

        }
    }
}

You можно разместить функцию внутри основного или снаружи. Обычно вы находите функции вне класса Main.

    public static void Main(string[] args)
    {
    ...
    }

    public static string replacethisstring(string dogCat)
    {
    ...
    }
0 голосов
/ 14 февраля 2020

Имеет несколько проблем, таких как опечатки, синтаксическая ошибка и др. c Кроме того, в упражнении есть условие, которое необходимо использовать с stringbuilder.

Итак, попробуйте это.

    static void Main(string[] args)
    {
        StringBuilder sb = new StringBuilder("Can the cat find the mouse without waking the dog?");
        sb = replacethisstring(sb);

        Console.WriteLine(sb.ToString());
        Console.ReadLine();
    }

    static StringBuilder replacethisstring(StringBuilder dogCat)
    {
        StringBuilder hondKat = dogCat.Replace("cat", "littlecat");
        hondKat = dogCat.Replace("the", "a");
        hondKat = dogCat.Replace("dog", "littledog");
        hondKat = dogCat.Replace("mouse", "littlemouse");
        return hondKat;
    }
...