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

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

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

в строке наити подстроку и обрезать последний символ,если в подстроке в конце "-" , то перенести "-" в следующую подстроку
Листинг программы
  1. using System;
  2. using System.Linq;
  3. using System.Text.RegularExpressions;
  4. namespace наити_подстроку_в_строке_и_изменить
  5. {
  6. class Program
  7. {
  8. static void Main(string[] args)
  9. {
  10. string linies = "1.3301;1.3337;1.3239;1.3273;;.7534-;29;2;107079;194564-;27443;1.6180B;1.2806;" + // нужно удалить в конце буквы "А" и "В" ;1.6180B; = ;1.6180;
  11. "1.3321;1.3358;1.3262;1.3295;;.7522-;29;0;34071;52032;17142;1.5850B;1.2827A;" + // найти "-" в конце и перенести в следующее поле ;.7522-;29; = ;.7522;-29;
  12. "6.6900;6.7068B;6.6834A;6.7025;;.1492;0.0190;0;28;135-;16;6.9102B;6.3689A;" +
  13. "6.7765;6.7950B;6.7765;6.7840;;.1474;0.0310;0;17;184-;11;6.9888B;6.5982;";
  14. var fields = linies.Trim().Split(new string[] { ";" }, StringSplitOptions.RemoveEmptyEntries);
  15. char[] totrim = { 'A', 'B'};
  16. Regex regex = new Regex(@"\d{3}[B|A]{1}");
  17. Regex regex1 = new Regex(@"\d{1,}[-]{1}");
  18. foreach (var field in fields)
  19. {
  20. if (regex.IsMatch(field))
  21. {
  22. Console.WriteLine("есть совпадения "{0}" ", field);
  23. //field.Replace('A', ' '); // не изменяет
  24. field.Remove(field.Count() - 1); // не изменяет
  25. //field.TrimEnd(totrim); // не изменяет
  26. Console.WriteLine("изменили "{0}" ", field);
  27. Console.ReadKey();
  28. }
  29. if (regex1.IsMatch(field))
  30. {
  31. Console.WriteLine("есть совпадения "{0}" ", field);
  32. field.Remove(field.Count() - 1); // не изменяет
  33. Console.WriteLine("изменили "{0}" ", field);
  34. Console.ReadKey();
  35. }
  36. }
  37. Console.ReadKey();
  38. }
  39. }
  40. }
не получается почемуто, убрать символы минус записать в следующую подстроку, не пойму как

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

textual
Листинг программы
  1. using System;
  2.  
  3. class Program
  4. {
  5.    
  6.  
  7.     public static void Main()
  8.     {
  9.  
  10.         string lines = "1.3301;1.3337;1.3239;1.3273;;.7534-;29;2;107079;194564-;27443;1.6180B;1.2806;" + // нужно удалить в конце буквы "А" и "В"   ;1.6180B; = ;1.6180;
  11.                             "1.3321;1.3358;1.3262;1.3295;;.7522-;29;0;34071;52032;17142;1.5850B;1.2827A;" + // найти "-" в конце и перенести в следующее поле  ;.7522-;29; = ;.7522;-29;
  12.                             "6.6900;6.7068B;6.6834A;6.7025;;.1492;0.0190;0;28;135-;16;6.9102B;6.3689A;" +
  13.                             "6.7765;6.7950B;6.7765;6.7840;;.1474;0.0310;0;17;184-;11;6.9888B;6.5982;";
  14.        
  15.  
  16.         string[] mass = lines.Split(';');
  17.  
  18.         for (int n = 0; n < mass.Length; n++)
  19.         {
  20.             if (mass[n].EndsWith("A") || mass[n].EndsWith("B"))
  21.             {
  22.                 mass[n] = mass[n].Remove(mass[n].Length - 1);
  23.             }
  24.             if (mass[n].EndsWith("-"))
  25.             {
  26.                 mass[n] = mass[n].Remove(mass[n].Length - 1);
  27.                 mass[n + 1] = "-" + mass[n + 1];
  28.             }
  29.            
  30.         }
  31.         string new_lines = "";
  32.         foreach (string g in mass)
  33.         {
  34.             new_lines += g + ";";
  35.         }
  36.         new_lines = new_lines.Remove(new_lines.Length - 1);
  37.  
  38.         Console.WriteLine(new_lines);
  39.  
  40.  
  41.  
  42.  
  43.     }
  44. }

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


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

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

5   голосов , оценка 3.4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы