Обработка строк в C# - PullRequest
       0

Обработка строк в C#

0 голосов
/ 10 февраля 2020

Я разрабатываю приложение консоли C# для текстового файла с несколькими символами в нем, состоящим из нескольких строк.

° ¢ ³Ç [A1 cheng2] / (N) Acheng (город в Хэйлунцзян) /

° ¶ Ä Ä Ä Ë¹ [A1 duo1 ni2 si1] / Adonis /

° ¢ ¶û Í á Í Ç Ç [A1 er3 ba1 ni2 y4] / Албания /

° ¶û ¶û ° ÍÄáÑá [A1 er3 ba1 ni2 ya4 ren2] / албанский (человек) /

° ¢ ¶û · ¨ [a1 er3 fa4] / alpha /

° ¢ ¶û¼ ° ¶û [A1 er3 ji2 er3] / Al

Я хочу, чтобы символы между [] и записывались в другой текстовый файл с новой строкой. Я не знаю, как реализовать в C#. то, что я пробовал до сих пор, не работает. '' '

     static void Main(string[] args)
    {
        string textFile = "input.txt";
        string[] lines = File.ReadAllLines(textFile);

        foreach (string line in lines)
        { 



        String[] spearator = { "[ ","]", "/" };
        Int32 count = 3;

        String[] strlist =line.Split(spearator, count,
               StringSplitOptions.RemoveEmptyEntries);

        foreach (String s in strlist)
        {
            Console.WriteLine(s);
        }
    }

1 Ответ

0 голосов
/ 10 февраля 2020

Вам необходимо использовать некоторые строковые методы C# и класс File Stream.

  • SubString для разделения строки, имеющей [].
  • IndexOf - это получить индекс символа [или].
  • FileStream для записи данных в файл.

Проверьте приведенный ниже C# код.

string[] stringArray = { "°¢³Ç [A1 cheng2] /(N) Acheng (city in Heilongjiang)",
                        " °¢¶àÄá˹ [A1 duo1 ni2 si1] /Adonis/",
                        "°¢¶û°ÍÄáÑÇ[A1 er3 ba1 ni2 ya4] /Albania/",
                        "°¢¶û°ÍÄáÑÇÈË[A1 er3 ba1 ni2 ya4 ren2] /Albanian(person)/",
                        "°¢¶û·¨ [a1 er3 fa4] /alpha/",
                        "°¢¶û¼°¶û[A1 er3 ji2 er3] /Al"
                            };

        using (var fileStream = new FileStream("stringToFile.txt", FileMode.OpenOrCreate, FileAccess.ReadWrite))
        {
            foreach (var dataItem in stringArray)
            {
                var firstIndex = dataItem.IndexOf("[");
                var stringFirst = dataItem.Substring(firstIndex + 1);
                var lastIndex = stringFirst.IndexOf("]");
                var stringToFile = stringFirst.Substring(0, lastIndex);
                byte[] bytes = Encoding.UTF8.GetBytes(stringToFile);

                fileStream.Write(bytes, 0, bytes.Length);
            }
            fileStream.Close();
        }
...