Пытаюсь создать простой js minifier, но он ничего не удаляет, хотя я удаляю пробел - PullRequest
0 голосов
/ 28 апреля 2019

Я пытаюсь создать простой минификатор, потому что я недоволен онлайн-инструментами.Я создал консольное приложение, но проблема в том, что ничего не удаляется, хотя я разбил текст и удалил символы / n и / t.

Я пробовал разные способы удаления пробелов.

static string restrictedSymbols = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ,0123456789";
...
static void Compress(string command)
        {
            string[] commandParts = command.Split(' ');

            string text = String.Empty;

            try
            {
                using (StreamReader sr = new StreamReader(commandParts[1]))
                {
                    text = sr.ReadToEnd();
                    text.Replace("\n", "");
                    text.Replace("\t", "");
                    string formattedText = text;

                    string[] splitText = text.Split(' ');
                    StringBuilder sb = new StringBuilder();
                    for (int i = 0; i < splitText.Length - 1; i++)
                    {
                        splitText[i].TrimStart();
                        StringBuilder tSB = new StringBuilder(splitText[i]);
                        if (splitText[i].Length > 1 && splitText[i + 1].Length > 1)
                        {
                            int textLength = splitText[i].Length - 1;

                            if (restrictedSymbols.Contains(splitText[i + 1][0]) && restrictedSymbols.Contains(splitText[i][textLength]))
                            {
                                tSB.Append(" ");
                            }
                        }

                        sb.Append(tSB.ToString());
                    }

                    sb.Append(splitText[splitText.Length - 1]);

                    text = sb.ToString();
                    Console.WriteLine(text);
                }    
            } catch (IOException e)
            {
                Console.WriteLine(e.ToString());
            }

            if (text != String.Empty)
            {
                try
                {
                    using (StreamWriter stream = File.CreateText(commandParts[2] + commandParts[3]))
                    {
                        stream.Write(text);
                    }
                }
                catch (IOException e)
                {
                    Console.WriteLine(e.ToString());
                }
            }

            Console.WriteLine("Process Complete...");
            GetCommand();
        }

Он должен печатать вывод минимизированного файла, но он просто выводит тот же самый файл, который я вставил.

Ответы [ 2 ]

3 голосов
/ 28 апреля 2019

Игнорирование любой другой проблемы, Replace само по себе ничего не делает

Возвращает новую строку , в которой все вхождения указанного символа Unicodeили строка в текущей строке заменяется другим указанным символом Unicode или строкой.

Таким образом, в основном вы игнорируете любые изменения, не сохраняя возвращаемое значение

Как минимум, вам потребуетсясделать что-то вроде этого

text = text.Replace("\n", "");
2 голосов
/ 28 апреля 2019

Вы заменяете символы, но затем ничего не делаете с ним.

Ваш код должен быть:

text = text.Replace("\n", "");
text = text.Replace("\t", "");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...