В строке найти подстроку и обрезать последний символ - C#

Узнай цену своей работы

Формулировка задачи:

в строке наити подстроку и обрезать последний символ,если в подстроке в конце "-" , то перенести "-" в следующую подстроку
using System;
using System.Linq;
using System.Text.RegularExpressions;
 
namespace наити_подстроку_в_строке_и_изменить
{
    class Program
    {
        static void Main(string[] args)
        {
            string linies = "1.3301;1.3337;1.3239;1.3273;;.7534-;29;2;107079;194564-;27443;1.6180B;1.2806;" + // нужно удалить в конце буквы "А" и "В"   ;1.6180B; = ;1.6180;
                            "1.3321;1.3358;1.3262;1.3295;;.7522-;29;0;34071;52032;17142;1.5850B;1.2827A;" + // найти "-" в конце и перенести в следующее поле  ;.7522-;29; = ;.7522;-29;
                            "6.6900;6.7068B;6.6834A;6.7025;;.1492;0.0190;0;28;135-;16;6.9102B;6.3689A;" +
                            "6.7765;6.7950B;6.7765;6.7840;;.1474;0.0310;0;17;184-;11;6.9888B;6.5982;";
 
            var fields = linies.Trim().Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
            char[] totrim = { 'A', 'B'};
            Regex regex = new Regex(@"\d{3}[B|A]{1}");
            Regex regex1 = new Regex(@"\d{1,}[-]{1}");
            foreach (var field in fields)
            {
                if (regex.IsMatch(field))
                {
                    Console.WriteLine("есть совпадения "{0}"  ", field);
                    //field.Replace('A', ' ');         // не изменяет
                    field.Remove(field.Count() - 1);  //  не изменяет
                    //field.TrimEnd(totrim);          //  не изменяет
                    Console.WriteLine("изменили "{0}"  ", field);
                    Console.ReadKey();
                }
                if (regex1.IsMatch(field))
                {
                    Console.WriteLine("есть совпадения "{0}"  ", field);
                    field.Remove(field.Count() - 1);  //  не изменяет
                    Console.WriteLine("изменили "{0}"  ", field);
                    Console.ReadKey();
                }
            }
            Console.ReadKey();
        }
    }
}
не получается почемуто, убрать символы минус записать в следующую подстроку, не пойму как

Решение задачи: «В строке найти подстроку и обрезать последний символ»

textual
Листинг программы
using System;
 
class Program
{
    
 
    public static void Main()
    {
 
        string lines = "1.3301;1.3337;1.3239;1.3273;;.7534-;29;2;107079;194564-;27443;1.6180B;1.2806;" + // нужно удалить в конце буквы "А" и "В"   ;1.6180B; = ;1.6180;
                            "1.3321;1.3358;1.3262;1.3295;;.7522-;29;0;34071;52032;17142;1.5850B;1.2827A;" + // найти "-" в конце и перенести в следующее поле  ;.7522-;29; = ;.7522;-29;
                            "6.6900;6.7068B;6.6834A;6.7025;;.1492;0.0190;0;28;135-;16;6.9102B;6.3689A;" +
                            "6.7765;6.7950B;6.7765;6.7840;;.1474;0.0310;0;17;184-;11;6.9888B;6.5982;";
        
 
        string[] mass = lines.Split(';');
 
        for (int n = 0; n < mass.Length; n++)
        {
            if (mass[n].EndsWith("A") || mass[n].EndsWith("B"))
            {
                mass[n] = mass[n].Remove(mass[n].Length - 1);
            }
            if (mass[n].EndsWith("-"))
            {
                mass[n] = mass[n].Remove(mass[n].Length - 1);
                mass[n + 1] = "-" + mass[n + 1];
            }
            
        }
        string new_lines = "";
        foreach (string g in mass)
        {
            new_lines += g + ";";
        }
        new_lines = new_lines.Remove(new_lines.Length - 1);
 
        Console.WriteLine(new_lines);
 
 
 
 
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

5   голосов , оценка 3.4 из 5
Похожие ответы